From 7fc7813aa49acb0998645114f1bb49ed102e9311 Mon Sep 17 00:00:00 2001 From: Isabela Guimaraes Date: Thu, 19 Dec 2024 13:22:19 -0800 Subject: [PATCH 01/57] adding data-testid to mandatory GKE elements for e2e tests locators Signed-off-by: Isabela Guimaraes --- pkg/gke/components/CruGKE.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/gke/components/CruGKE.vue b/pkg/gke/components/CruGKE.vue index 59bfd16012..714ffe3c4b 100644 --- a/pkg/gke/components/CruGKE.vue +++ b/pkg/gke/components/CruGKE.vue @@ -705,6 +705,7 @@ export default defineComponent({ required :rules="fvGetAndReportPathRules('clusterName')" @update:value="setClusterName" + data-testid="gke-cluster-name" />
@@ -714,6 +715,7 @@ export default defineComponent({ label-key="nameNsDescription.description.label" :placeholder="t('nameNsDescription.description.placeholder')" @update:value="setClusterDescription" + data-testid="gke-cluster-description" />
From 4cfd15a1f01af1e78b14976faccb6a81d16352f6 Mon Sep 17 00:00:00 2001 From: Isabela Guimaraes Date: Thu, 19 Dec 2024 13:44:00 -0800 Subject: [PATCH 02/57] changed order of data-testid to fix eslint error Signed-off-by: Isabela Guimaraes --- pkg/gke/components/CruGKE.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/gke/components/CruGKE.vue b/pkg/gke/components/CruGKE.vue index 714ffe3c4b..2ea85145e4 100644 --- a/pkg/gke/components/CruGKE.vue +++ b/pkg/gke/components/CruGKE.vue @@ -704,8 +704,8 @@ export default defineComponent({ label-key="generic.name" required :rules="fvGetAndReportPathRules('clusterName')" - @update:value="setClusterName" data-testid="gke-cluster-name" + @update:value="setClusterName" />
@@ -714,8 +714,8 @@ export default defineComponent({ :mode="mode" label-key="nameNsDescription.description.label" :placeholder="t('nameNsDescription.description.placeholder')" - @update:value="setClusterDescription" data-testid="gke-cluster-description" + @update:value="setClusterDescription" />
From b8ddea2d39e73129a1007a5ac2f1a7e878418ed2 Mon Sep 17 00:00:00 2001 From: Phillip Rak Date: Fri, 20 Dec 2024 12:42:00 -0700 Subject: [PATCH 03/57] Remove unused `dagre-d3` dependency Signed-off-by: Phillip Rak --- package.json | 1 - shell/package.json | 1 - shell/yarn.lock | 284 ++------------------------------------------ yarn.lock | 286 ++------------------------------------------- 4 files changed, 15 insertions(+), 557 deletions(-) diff --git a/package.json b/package.json index 53d9ddb972..16c317a5a9 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,6 @@ "custom-event-polyfill": "1.0.7", "d3": "7.3.0", "d3-selection": "1.4.1", - "dagre-d3": "0.6.4", "dayjs": "1.8.29", "defu": "5.0.1", "diff2html": "3.4.24", diff --git a/shell/package.json b/shell/package.json index 046af30d52..1d72b060a1 100644 --- a/shell/package.json +++ b/shell/package.json @@ -72,7 +72,6 @@ "cypress": "10.3.1", "d3": "7.3.0", "d3-selection": "1.4.1", - "dagre-d3": "0.6.4", "dayjs": "1.8.29", "defu": "5.0.1", "diff2html": "3.4.24", diff --git a/shell/yarn.lock b/shell/yarn.lock index eed0a94580..e010f3982c 100644 --- a/shell/yarn.lock +++ b/shell/yarn.lock @@ -5762,11 +5762,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@7, commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -5777,6 +5772,11 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" @@ -6296,11 +6296,6 @@ cypress@10.3.1: untildify "^4.0.0" yauzl "^2.10.0" -d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: version "3.2.4" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" @@ -6308,27 +6303,11 @@ d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: dependencies: internmap "1 - 2" -d3-axis@1: - version "1.0.12" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" - integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== - d3-axis@3: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== -d3-brush@1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" - integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - d3-brush@3: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" @@ -6340,14 +6319,6 @@ d3-brush@3: d3-selection "3" d3-transition "3" -d3-chord@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" - integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== - dependencies: - d3-array "1" - d3-path "1" - d3-chord@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" @@ -6355,23 +6326,11 @@ d3-chord@3: dependencies: d3-path "1 - 3" -d3-collection@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== - -d3-color@1, "d3-color@1 - 3", d3-color@3, d3-color@3.1.0: +"d3-color@1 - 3", d3-color@3, d3-color@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -d3-contour@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" - integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== - dependencies: - d3-array "^1.1.1" - d3-contour@3: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.1.0.tgz#708484a5d89be9558dfdda4a95b3df2fdebb65ab" @@ -6386,24 +6345,11 @@ d3-delaunay@6: dependencies: delaunator "5" -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - "d3-dispatch@1 - 3", d3-dispatch@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== -d3-drag@1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - "d3-drag@2 - 3", d3-drag@3: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" @@ -6412,15 +6358,6 @@ d3-drag@1: d3-dispatch "1 - 3" d3-selection "3" -d3-dsv@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - "d3-dsv@1 - 3", d3-dsv@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" @@ -6430,23 +6367,11 @@ d3-dsv@1: iconv-lite "0.6" rw "1" -d3-ease@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== - "d3-ease@1 - 3", d3-ease@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== -d3-fetch@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" - integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA== - dependencies: - d3-dsv "1" - d3-fetch@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" @@ -6454,16 +6379,6 @@ d3-fetch@3: dependencies: d3-dsv "1 - 3" -d3-force@1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" - integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" - d3-force@3: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" @@ -6473,23 +6388,11 @@ d3-force@3: d3-quadtree "1 - 3" d3-timer "1 - 3" -d3-format@1: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== - "d3-format@1 - 3", d3-format@3: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== -d3-geo@1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" - integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== - dependencies: - d3-array "1" - d3-geo@3: version "3.1.1" resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" @@ -6497,23 +6400,11 @@ d3-geo@3: dependencies: d3-array "2.5.0 - 3" -d3-hierarchy@1: - version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - d3-hierarchy@3: version "3.1.2" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" @@ -6521,54 +6412,26 @@ d3-interpolate@1: dependencies: d3-color "1 - 3" -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - "d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== -d3-polygon@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" - integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== - d3-polygon@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== - "d3-quadtree@1 - 3", d3-quadtree@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== -d3-random@1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" - integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== - d3-random@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== -d3-scale-chromatic@1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" - integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== - dependencies: - d3-color "1" - d3-interpolate "1" - d3-scale-chromatic@3: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" @@ -6577,18 +6440,6 @@ d3-scale-chromatic@3: d3-color "1 - 3" d3-interpolate "1 - 3" -d3-scale@2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" - integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== - dependencies: - d3-array "^1.2.0" - d3-collection "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" - d3-scale@4: version "4.0.2" resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" @@ -6600,11 +6451,6 @@ d3-scale@4: d3-time "2.1.1 - 3" d3-time-format "2 - 4" -d3-selection@1, d3-selection@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - d3-selection@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" @@ -6615,13 +6461,6 @@ d3-selection@1.4.1: resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== -d3-shape@1: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - d3-shape@3: version "3.2.0" resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" @@ -6629,13 +6468,6 @@ d3-shape@3: dependencies: d3-path "^3.1.0" -d3-time-format@2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== - dependencies: - d3-time "1" - "d3-time-format@2 - 4", d3-time-format@4: version "4.1.0" resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" @@ -6643,11 +6475,6 @@ d3-time-format@2: dependencies: d3-time "1 - 3" -d3-time@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== - "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" @@ -6655,28 +6482,11 @@ d3-time@1: dependencies: d3-array "2 - 3" -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - "d3-timer@1 - 3", d3-timer@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== -d3-transition@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - "d3-transition@2 - 3", d3-transition@3: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" @@ -6688,22 +6498,6 @@ d3-transition@1: d3-interpolate "1 - 3" d3-timer "1 - 3" -d3-voronoi@1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" - integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== - -d3-zoom@1: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - d3-zoom@3: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" @@ -6751,61 +6545,6 @@ d3@7.3.0: d3-transition "3" d3-zoom "3" -d3@^5.14: - version "5.16.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" - integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== - dependencies: - d3-array "1" - d3-axis "1" - d3-brush "1" - d3-chord "1" - d3-collection "1" - d3-color "1" - d3-contour "1" - d3-dispatch "1" - d3-drag "1" - d3-dsv "1" - d3-ease "1" - d3-fetch "1" - d3-force "1" - d3-format "1" - d3-geo "1" - d3-hierarchy "1" - d3-interpolate "1" - d3-path "1" - d3-polygon "1" - d3-quadtree "1" - d3-random "1" - d3-scale "2" - d3-scale-chromatic "1" - d3-selection "1" - d3-shape "1" - d3-time "1" - d3-time-format "2" - d3-timer "1" - d3-transition "1" - d3-voronoi "1" - d3-zoom "1" - -dagre-d3@0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" - integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ== - dependencies: - d3 "^5.14" - dagre "^0.8.5" - graphlib "^2.1.8" - lodash "^4.17.15" - -dagre@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" - integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== - dependencies: - graphlib "^2.1.8" - lodash "^4.17.15" - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -8451,13 +8190,6 @@ graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -8791,7 +8523,7 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4, iconv-lite@0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -10257,7 +9989,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== diff --git a/yarn.lock b/yarn.lock index 9a487d7b49..bcc0aecd51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6099,11 +6099,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@7, commander@^7.2.0: version "7.2.0" resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -6114,6 +6109,11 @@ commander@^10.0.0, commander@^10.0.1: resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -6700,11 +6700,6 @@ cypress@11.1.0: untildify "^4.0.0" yauzl "^2.10.0" -d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: - version "1.2.4" - resolved "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: version "3.2.4" resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" @@ -6712,27 +6707,11 @@ d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: dependencies: internmap "1 - 2" -d3-axis@1: - version "1.0.12" - resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" - integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== - d3-axis@3: version "3.0.0" resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== -d3-brush@1: - version "1.1.6" - resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" - integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - d3-brush@3: version "3.0.0" resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" @@ -6744,14 +6723,6 @@ d3-brush@3: d3-selection "3" d3-transition "3" -d3-chord@1: - version "1.0.6" - resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" - integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== - dependencies: - d3-array "1" - d3-path "1" - d3-chord@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" @@ -6759,28 +6730,11 @@ d3-chord@3: dependencies: d3-path "1 - 3" -d3-collection@1: - version "1.0.7" - resolved "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== - -d3-color@1: - version "1.4.1" - resolved "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - "d3-color@1 - 3", d3-color@3: version "3.1.0" resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -d3-contour@1: - version "1.3.2" - resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" - integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== - dependencies: - d3-array "^1.1.1" - d3-contour@3: version "3.1.0" resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-3.1.0.tgz#708484a5d89be9558dfdda4a95b3df2fdebb65ab" @@ -6795,24 +6749,11 @@ d3-delaunay@6: dependencies: delaunator "5" -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - "d3-dispatch@1 - 3", d3-dispatch@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== -d3-drag@1: - version "1.2.5" - resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - "d3-drag@2 - 3", d3-drag@3: version "3.0.0" resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" @@ -6821,15 +6762,6 @@ d3-drag@1: d3-dispatch "1 - 3" d3-selection "3" -d3-dsv@1: - version "1.2.0" - resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - "d3-dsv@1 - 3", d3-dsv@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" @@ -6839,23 +6771,11 @@ d3-dsv@1: iconv-lite "0.6" rw "1" -d3-ease@1: - version "1.0.7" - resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== - "d3-ease@1 - 3", d3-ease@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== -d3-fetch@1: - version "1.2.0" - resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" - integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA== - dependencies: - d3-dsv "1" - d3-fetch@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" @@ -6863,16 +6783,6 @@ d3-fetch@3: dependencies: d3-dsv "1 - 3" -d3-force@1: - version "1.2.1" - resolved "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" - integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" - d3-force@3: version "3.0.0" resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" @@ -6882,23 +6792,11 @@ d3-force@3: d3-quadtree "1 - 3" d3-timer "1 - 3" -d3-format@1: - version "1.4.5" - resolved "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== - "d3-format@1 - 3", d3-format@3: version "3.1.0" resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== -d3-geo@1: - version "1.12.1" - resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" - integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== - dependencies: - d3-array "1" - d3-geo@3: version "3.1.1" resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" @@ -6906,23 +6804,11 @@ d3-geo@3: dependencies: d3-array "2.5.0 - 3" -d3-hierarchy@1: - version "1.1.9" - resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - d3-hierarchy@3: version "3.1.2" resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" @@ -6930,54 +6816,26 @@ d3-interpolate@1: dependencies: d3-color "1 - 3" -d3-path@1: - version "1.0.9" - resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - "d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== -d3-polygon@1: - version "1.0.6" - resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" - integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== - d3-polygon@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== - "d3-quadtree@1 - 3", d3-quadtree@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== -d3-random@1: - version "1.1.2" - resolved "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" - integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== - d3-random@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== -d3-scale-chromatic@1: - version "1.5.0" - resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" - integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== - dependencies: - d3-color "1" - d3-interpolate "1" - d3-scale-chromatic@3: version "3.1.0" resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" @@ -6986,18 +6844,6 @@ d3-scale-chromatic@3: d3-color "1 - 3" d3-interpolate "1 - 3" -d3-scale@2: - version "2.2.2" - resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" - integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== - dependencies: - d3-array "^1.2.0" - d3-collection "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" - d3-scale@4: version "4.0.2" resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" @@ -7009,11 +6855,6 @@ d3-scale@4: d3-time "2.1.1 - 3" d3-time-format "2 - 4" -d3-selection@1, d3-selection@^1.1.0: - version "1.4.2" - resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - d3-selection@1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" @@ -7024,13 +6865,6 @@ d3-selection@1.4.1: resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== -d3-shape@1: - version "1.3.7" - resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - d3-shape@3: version "3.2.0" resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" @@ -7038,13 +6872,6 @@ d3-shape@3: dependencies: d3-path "^3.1.0" -d3-time-format@2: - version "2.3.0" - resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== - dependencies: - d3-time "1" - "d3-time-format@2 - 4", d3-time-format@4: version "4.1.0" resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" @@ -7052,11 +6879,6 @@ d3-time-format@2: dependencies: d3-time "1 - 3" -d3-time@1: - version "1.1.0" - resolved "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== - "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: version "3.1.0" resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" @@ -7064,28 +6886,11 @@ d3-time@1: dependencies: d3-array "2 - 3" -d3-timer@1: - version "1.0.10" - resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - "d3-timer@1 - 3", d3-timer@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== -d3-transition@1: - version "1.3.2" - resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - "d3-transition@2 - 3", d3-transition@3: version "3.0.1" resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" @@ -7097,22 +6902,6 @@ d3-transition@1: d3-interpolate "1 - 3" d3-timer "1 - 3" -d3-voronoi@1: - version "1.1.4" - resolved "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" - integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== - -d3-zoom@1: - version "1.8.3" - resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - d3-zoom@3: version "3.0.0" resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" @@ -7160,61 +6949,6 @@ d3@7.3.0: d3-transition "3" d3-zoom "3" -d3@^5.14: - version "5.16.0" - resolved "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" - integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== - dependencies: - d3-array "1" - d3-axis "1" - d3-brush "1" - d3-chord "1" - d3-collection "1" - d3-color "1" - d3-contour "1" - d3-dispatch "1" - d3-drag "1" - d3-dsv "1" - d3-ease "1" - d3-fetch "1" - d3-force "1" - d3-format "1" - d3-geo "1" - d3-hierarchy "1" - d3-interpolate "1" - d3-path "1" - d3-polygon "1" - d3-quadtree "1" - d3-random "1" - d3-scale "2" - d3-scale-chromatic "1" - d3-selection "1" - d3-shape "1" - d3-time "1" - d3-time-format "2" - d3-timer "1" - d3-transition "1" - d3-voronoi "1" - d3-zoom "1" - -dagre-d3@0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" - integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ== - dependencies: - d3 "^5.14" - dagre "^0.8.5" - graphlib "^2.1.8" - lodash "^4.17.15" - -dagre@^0.8.5: - version "0.8.5" - resolved "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" - integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== - dependencies: - graphlib "^2.1.8" - lodash "^4.17.15" - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -8029,6 +7763,7 @@ eslint-plugin-jest@24.4.0: "eslint-plugin-local-rules@link:./eslint-plugin-local-rules": version "0.0.0" + uid "" "eslint-plugin-local-rules@link:eslint-plugin-local-rules": version "0.0.0" @@ -9089,13 +8824,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -9479,7 +9207,7 @@ human-signals@^2.1.0: resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4, iconv-lite@0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== From 77ad7c17a9dbc93368e64343d7e6c71b4d268e42 Mon Sep 17 00:00:00 2001 From: Phillip Rak Date: Fri, 20 Dec 2024 15:19:01 -0700 Subject: [PATCH 04/57] Add `dependabot.yml` Signed-off-by: Phillip Rak --- .github/dependabot.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..65a7a360f6 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,21 @@ +version: 2 +updates: + + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + open-pull-requests-limit: 5 + labels: ["component/dependencies"] + + # Maintain dependencies for dashboard, shell, and packages + - package-ecosystem: "npm" + directories: + - "/" + - "/shell" + - "/pkg/*" + schedule: + interval: "daily" + open-pull-requests-limit: 5 + labels: ["component/dependencies"] From 289f638bae61c6d4ca367937d991d67d69d4a3c9 Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Thu, 2 Jan 2025 10:38:11 +0100 Subject: [PATCH 05/57] Fix Node Selector value update Signed-off-by: Francesco Torchia --- shell/components/form/NodeScheduling.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/components/form/NodeScheduling.vue b/shell/components/form/NodeScheduling.vue index f2b4150afd..7414224d49 100644 --- a/shell/components/form/NodeScheduling.vue +++ b/shell/components/form/NodeScheduling.vue @@ -182,7 +182,7 @@ export default { :mode="mode" :multiple="false" :loading="loading" - @input="update" + @update:value="update" /> From 55cf3b3a7c42b18f3309a40ac578a8d5ea0ae771 Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Thu, 2 Jan 2025 12:04:15 +0100 Subject: [PATCH 06/57] Implement NodeScheduling.test Signed-off-by: Francesco Torchia --- shell/components/form/NodeScheduling.vue | 4 ++ .../form/__tests__/NodeScheduling.test.ts | 45 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 shell/components/form/__tests__/NodeScheduling.test.ts diff --git a/shell/components/form/NodeScheduling.vue b/shell/components/form/NodeScheduling.vue index 7414224d49..9905578754 100644 --- a/shell/components/form/NodeScheduling.vue +++ b/shell/components/form/NodeScheduling.vue @@ -32,6 +32,7 @@ export default { type: String, default: 'create' }, + loading: { default: false, type: Boolean @@ -169,6 +170,7 @@ export default { name="selectNode" :options="selectNodeOptions" :mode="mode" + :data-testid="'node-scheduling-selectNode'" @input="update" /> @@ -182,6 +184,7 @@ export default { :mode="mode" :multiple="false" :loading="loading" + :data-testid="'node-scheduling-nodeSelector'" @update:value="update" /> @@ -191,6 +194,7 @@ export default { diff --git a/shell/components/form/__tests__/NodeScheduling.test.ts b/shell/components/form/__tests__/NodeScheduling.test.ts new file mode 100644 index 0000000000..1d8cd1c1dd --- /dev/null +++ b/shell/components/form/__tests__/NodeScheduling.test.ts @@ -0,0 +1,45 @@ +import { mount } from '@vue/test-utils'; +import NodeScheduling from '@shell/components/form/NodeScheduling.vue'; +import { _CREATE, _EDIT, _VIEW } from '@shell/config/query-params'; + +const requiredSetup = () => { + return { + global: { + mocks: { + $store: { + getters: { + currentProduct: { inStore: 'cluster' }, + 'i18n/t': (text: string) => text, + t: (text: string) => text, + } + } + }, + } + }; +}; + +describe('component: NodeScheduling', () => { + + const value = { + nodeName: "node-1", + }; + + const nodes = ["node-0",'node-1']; + + it.each([ + _VIEW, + _CREATE, + _EDIT + ])('should show NodeName option', (mode) => { + const wrapper = mount( + NodeScheduling, + { + props: { mode, loading: false, value, nodes }, + ...requiredSetup(), + } + ); + + expect(wrapper.find('[data-testid="node-scheduling-selectNode"]').exists()).toBeTruthy(); + expect(wrapper.find('[data-testid="node-scheduling-nodeSelector"]').element.textContent).toContain(value.nodeName); + }); +}); From cd73a687a45128931ab5c9404ad73a8585afb02c Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Thu, 2 Jan 2025 12:29:38 +0100 Subject: [PATCH 07/57] Lint Signed-off-by: Francesco Torchia --- .../form/__tests__/NodeScheduling.test.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/shell/components/form/__tests__/NodeScheduling.test.ts b/shell/components/form/__tests__/NodeScheduling.test.ts index 1d8cd1c1dd..ed185373bb 100644 --- a/shell/components/form/__tests__/NodeScheduling.test.ts +++ b/shell/components/form/__tests__/NodeScheduling.test.ts @@ -9,8 +9,8 @@ const requiredSetup = () => { $store: { getters: { currentProduct: { inStore: 'cluster' }, - 'i18n/t': (text: string) => text, - t: (text: string) => text, + 'i18n/t': (text: string) => text, + t: (text: string) => text, } } }, @@ -19,12 +19,9 @@ const requiredSetup = () => { }; describe('component: NodeScheduling', () => { + const value = { nodeName: 'node-1' }; - const value = { - nodeName: "node-1", - }; - - const nodes = ["node-0",'node-1']; + const nodes = ['node-0', 'node-1']; it.each([ _VIEW, @@ -34,7 +31,9 @@ describe('component: NodeScheduling', () => { const wrapper = mount( NodeScheduling, { - props: { mode, loading: false, value, nodes }, + props: { + mode, loading: false, value, nodes + }, ...requiredSetup(), } ); From b893bfaa7110054c5a19c67febc0c38b47d5a8b4 Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Thu, 2 Jan 2025 17:31:37 +0100 Subject: [PATCH 08/57] Support caBundle plain text Signed-off-by: Francesco Torchia --- .../tabs/registries/RegistryConfigs.vue | 10 ++++++++-- .../tabs/registries/__tests__/RegistryConfigs.test.ts | 9 ++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/shell/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue b/shell/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue index f377781073..62a0eceb56 100644 --- a/shell/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +++ b/shell/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue @@ -1,4 +1,5 @@ > + + + From fdc25a9ed5d3975c7a0cfb9b57a171ceeb12391d Mon Sep 17 00:00:00 2001 From: Jordon Leach Date: Mon, 13 Jan 2025 13:18:08 -0500 Subject: [PATCH 32/57] Fix EXTENSION_TAG output typo (#13079) --- .github/workflows/test-extension-workflows-master.yml | 4 ++-- .github/workflows/test-extension-workflows-release-2.8.yml | 4 ++-- .github/workflows/test-extension-workflows-release-2.9.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-extension-workflows-master.yml b/.github/workflows/test-extension-workflows-master.yml index ef44059f04..6f8756083f 100644 --- a/.github/workflows/test-extension-workflows-master.yml +++ b/.github/workflows/test-extension-workflows-master.yml @@ -30,7 +30,7 @@ jobs: SHELL_TAG: ${{ steps.retrieve-data.outputs.SHELL_TAG }} CREATORS_TAG: ${{ steps.retrieve-data.outputs.CREATORS_TAG }} ECI_TAG: ${{ steps.retrieve-data.outputs.ECI_TAG }} - EXTENSIONS_TAG: ${{ steps.retrieve-data.outputs.EXTENSIONS_TAG }} + EXTENSION_TAG: ${{ steps.retrieve-data.outputs.EXTENSION_TAG }} CURR_JOB_ID: ${{ github.job }} tags-job-status: ${{ job.status }} steps: @@ -53,7 +53,7 @@ jobs: pages: write with: target_branch: 'gh-pages' - tagged_release: ${{ needs.retrieve-tags-master.outputs.EXTENSIONS_TAG }} + tagged_release: ${{ needs.retrieve-tags-master.outputs.EXTENSION_TAG }} is_test: 'true' test_ext_repo: 'ui-plugin-examples' test_ext_branch: 'main' diff --git a/.github/workflows/test-extension-workflows-release-2.8.yml b/.github/workflows/test-extension-workflows-release-2.8.yml index 212d7027c9..eff00910e5 100644 --- a/.github/workflows/test-extension-workflows-release-2.8.yml +++ b/.github/workflows/test-extension-workflows-release-2.8.yml @@ -17,7 +17,7 @@ jobs: SHELL_TAG: ${{ steps.retrieve-data.outputs.SHELL_TAG }} CREATORS_TAG: ${{ steps.retrieve-data.outputs.CREATORS_TAG }} ECI_TAG: ${{ steps.retrieve-data.outputs.ECI_TAG }} - EXTENSIONS_TAG: ${{ steps.retrieve-data.outputs.EXTENSIONS_TAG }} + EXTENSION_TAG: ${{ steps.retrieve-data.outputs.EXTENSION_TAG }} CURR_JOB_ID: ${{ github.job }} tags-job-status: ${{ job.status }} steps: @@ -40,7 +40,7 @@ jobs: pages: write with: target_branch: 'gh-pages' - tagged_release: ${{ needs.retrieve-tags-release-2-dot-8.outputs.EXTENSIONS_TAG }} + tagged_release: ${{ needs.retrieve-tags-release-2-dot-8.outputs.EXTENSION_TAG }} is_test: 'true' test_ext_repo: 'elemental-ui' test_ext_branch: 'release-2.8.x' diff --git a/.github/workflows/test-extension-workflows-release-2.9.yml b/.github/workflows/test-extension-workflows-release-2.9.yml index e7b5ebcb50..f6d742f4cf 100644 --- a/.github/workflows/test-extension-workflows-release-2.9.yml +++ b/.github/workflows/test-extension-workflows-release-2.9.yml @@ -17,7 +17,7 @@ jobs: SHELL_TAG: ${{ steps.retrieve-data.outputs.SHELL_TAG }} CREATORS_TAG: ${{ steps.retrieve-data.outputs.CREATORS_TAG }} ECI_TAG: ${{ steps.retrieve-data.outputs.ECI_TAG }} - EXTENSIONS_TAG: ${{ steps.retrieve-data.outputs.EXTENSIONS_TAG }} + EXTENSION_TAG: ${{ steps.retrieve-data.outputs.EXTENSION_TAG }} CURR_JOB_ID: ${{ github.job }} tags-job-status: ${{ job.status }} steps: @@ -40,7 +40,7 @@ jobs: pages: write with: target_branch: 'gh-pages' - tagged_release: ${{ needs.retrieve-tags-release-2-dot-9.outputs.EXTENSIONS_TAG }} + tagged_release: ${{ needs.retrieve-tags-release-2-dot-9.outputs.EXTENSION_TAG }} is_test: 'true' test_ext_repo: 'elemental-ui' test_ext_branch: 'release-2.9.x' From 1621fe5d3b8a3c31f22b7deba46ed576bb8fc78d Mon Sep 17 00:00:00 2001 From: Jordon Leach Date: Mon, 13 Jan 2025 13:20:01 -0500 Subject: [PATCH 33/57] Return the old path when `next` is missing from the url (#13078) --- docusaurus/docusaurus.config.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docusaurus/docusaurus.config.js b/docusaurus/docusaurus.config.js index 696f8cb3a2..67eb2b7568 100644 --- a/docusaurus/docusaurus.config.js +++ b/docusaurus/docusaurus.config.js @@ -77,10 +77,13 @@ const config = { '@docusaurus/plugin-client-redirects', { createRedirects(existingPath) { - if (existingPath.includes('/extensions') && !existingPath.includes('/next') && !existingPath.includes('/v2')) { - return [ - existingPath.replace('/extensions', '/extensions/next') - ]; + // This function is invoked once per existing doc page, and we + // must return the “old” routes that we want to map to that doc’s path + if (existingPath.startsWith('/extensions/next')) { + // Generate the "old" route we want to redirect from + const oldPath = existingPath.replace('/extensions/next', '/extensions'); + + return [oldPath]; } return undefined; // Return a falsy value: no redirect created From 60f62107e704255d75fe2379fef9149d67fdd3b8 Mon Sep 17 00:00:00 2001 From: Phillip Rak Date: Tue, 14 Jan 2025 12:25:23 -0700 Subject: [PATCH 34/57] Pin Rancher version to v2.11-2053ce644a31cd8053d1f58e2487154b0b8513b6-head for e2e tests Signed-off-by: Phillip Rak --- package.json | 2 +- scripts/e2e-docker-start | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 09c399e082..603c6900cb 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "install:ci": "yarn install --frozen-lockfile", "dev": "bash -c 'source ./scripts/version && NODE_ENV=dev ./node_modules/.bin/vue-cli-service serve'", "mem-dev": "bash -c 'source ./scripts/version && NODE_ENV=dev node --max-old-space-size=8192 ./node_modules/.bin/vue-cli-service serve'", - "docker:local:start": "docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -e CATTLE_BOOTSTRAP_PASSWORD=password -e CATTLE_PASSWORD_MIN_LENGTH=3 --name cypress --privileged rancher/rancher:head", + "docker:local:start": "docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -e CATTLE_BOOTSTRAP_PASSWORD=password -e CATTLE_PASSWORD_MIN_LENGTH=3 --name cypress --privileged rancher/rancher:v2.11-2053ce644a31cd8053d1f58e2487154b0b8513b6-head", "docker:local:stop": "docker kill cypress || true && docker rm cypress || true", "build": "NODE_OPTIONS=--max_old_space_size=4096 ./node_modules/.bin/vue-cli-service build", "build:lib": "cd pkg/rancher-components && yarn build:lib", diff --git a/scripts/e2e-docker-start b/scripts/e2e-docker-start index cdd69be5ba..299b120830 100755 --- a/scripts/e2e-docker-start +++ b/scripts/e2e-docker-start @@ -7,7 +7,7 @@ DASHBOARD_DIST=${DIR}/dist EMBER_DIST=${DIR}/dist_ember # Image version -RANCHER_IMG_VERSION=head +RANCHER_IMG_VERSION=v2.11-2053ce644a31cd8053d1f58e2487154b0b8513b6-head # Docker volume args when mounting the locally-built UI into the container VOLUME_ARGS="-v ${DASHBOARD_DIST}:/usr/share/rancher/ui-dashboard/dashboard -v ${EMBER_DIST}:/usr/share/rancher/ui" From 022d4268a2e48792ae120f9a1f78da795638e782 Mon Sep 17 00:00:00 2001 From: Phillip Rak Date: Tue, 14 Jan 2025 08:59:12 -0700 Subject: [PATCH 35/57] Set dependabot interval to weekly Signed-off-by: Phillip Rak --- .github/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b1aad7ed2e..a6f1887020 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,7 @@ updates: - package-ecosystem: "github-actions" directory: "/" schedule: - interval: "daily" + interval: "weekly" open-pull-requests-limit: 5 labels: ["component/dependencies"] @@ -20,6 +20,6 @@ updates: - "/storybook" - "/pkg/*" schedule: - interval: "daily" + interval: "weekly" open-pull-requests-limit: 5 labels: ["component/dependencies"] From 52a56e7460401bda294dd36a8f549dbd8ec69993 Mon Sep 17 00:00:00 2001 From: Yonas Berhe Date: Wed, 8 Jan 2025 11:00:48 -0800 Subject: [PATCH 36/57] automation: fleet cluster groups tests --- .../e2e/po/components/create-edit-view.po.ts | 4 + .../fleet/fleet.cattle.io.clustergroup.po.ts | 30 +-- .../fleet/fleet.cattle.io.clustergroup.po.ts | 18 +- .../tests/pages/fleet/cluster-groups.spec.ts | 184 +++++++++++++----- .../e2e/tests/pages/fleet/dashboard.spec.ts | 5 +- 5 files changed, 171 insertions(+), 70 deletions(-) diff --git a/cypress/e2e/po/components/create-edit-view.po.ts b/cypress/e2e/po/components/create-edit-view.po.ts index b94c8091ac..000e880694 100644 --- a/cypress/e2e/po/components/create-edit-view.po.ts +++ b/cypress/e2e/po/components/create-edit-view.po.ts @@ -21,4 +21,8 @@ export default class CreateEditViewPo extends ComponentPo { saveButtonPo() :AsyncButtonPo { return new AsyncButtonPo(this.self().find('.cru-resource-footer .role-primary')); } + + editAsYaml() { + return new AsyncButtonPo(this.self().find('[data-testid="form-yaml"]')).click(); + } } diff --git a/cypress/e2e/po/edit/fleet/fleet.cattle.io.clustergroup.po.ts b/cypress/e2e/po/edit/fleet/fleet.cattle.io.clustergroup.po.ts index e792fdcb7f..6b5aa989f8 100644 --- a/cypress/e2e/po/edit/fleet/fleet.cattle.io.clustergroup.po.ts +++ b/cypress/e2e/po/edit/fleet/fleet.cattle.io.clustergroup.po.ts @@ -1,27 +1,35 @@ import PagePo from '@/cypress/e2e/po/pages/page.po'; import AsyncButtonPo from '@/cypress/e2e/po/components/async-button.po'; -import CodeMirrorPo from '@/cypress/e2e/po/components/code-mirror.po'; - +import ResourceDetailPo from '@/cypress/e2e/po/edit/resource-detail.po'; +import NameNsDescription from '@/cypress/e2e/po/components/name-ns-description.po'; export default class FleetClusterGroupsCreateEditPo extends PagePo { - private static createPath(clusterId: string, id?: string ) { - const root = `/c/${ clusterId }/explorer/storage.k8s.io.storageclass/create`; + private static createPath(clusterId: string, workspace?: string, id?: string ) { + const root = `/c/${ clusterId }/fleet/fleet.cattle.io.clustergroup`; - return id ? `${ root }/${ id }` : `${ root }/create`; + return id ? `${ root }/${ workspace }/${ id }` : `${ root }/create`; } static goTo(path: string): Cypress.Chainable { throw new Error('invalid'); } - constructor(clusterId = '_', id?: string) { - super(FleetClusterGroupsCreateEditPo.createPath(clusterId, id)); + constructor(clusterId = '_', workspace?: string, id?: string) { + super(FleetClusterGroupsCreateEditPo.createPath(clusterId, workspace, id)); } - editAsYaml() { - return new AsyncButtonPo('[data-testid="form-yaml"]', this.self()); + title() { + return this.self().get('.title .primaryheader h1'); } - yamlEditor(): CodeMirrorPo { - return CodeMirrorPo.bySelector(this.self(), '[data-testid="yaml-editor-code-mirror"]'); + nameNsDescription() { + return new NameNsDescription(this.self()); + } + + saveCreateForm(): ResourceDetailPo { + return new ResourceDetailPo(this.self()); + } + + saveButton() { + return new AsyncButtonPo('[data-testid="form-save"]', this.self()); } } diff --git a/cypress/e2e/po/pages/fleet/fleet.cattle.io.clustergroup.po.ts b/cypress/e2e/po/pages/fleet/fleet.cattle.io.clustergroup.po.ts index adad51dd08..332bac73b5 100644 --- a/cypress/e2e/po/pages/fleet/fleet.cattle.io.clustergroup.po.ts +++ b/cypress/e2e/po/pages/fleet/fleet.cattle.io.clustergroup.po.ts @@ -5,14 +5,16 @@ import ResourceTablePo from '@/cypress/e2e/po/components/resource-table.po'; import FleetClusterGroupsList from '@/cypress/e2e/po/lists/fleet/fleet.cattle.io.clustergroup'; import FleetClusterGroupsCreateEditPo from '@/cypress/e2e/po/edit/fleet/fleet.cattle.io.clustergroup.po'; export class FleetClusterGroupsListPagePo extends PagePo { - static url = `/c/_/fleet/fleet.cattle.io.clustergroup` - - constructor() { - super(FleetClusterGroupsListPagePo.url); + private static createPath(clusterId: string) { + return `/c/${ clusterId }/fleet/fleet.cattle.io.clustergroup`; } - goTo() { - return cy.visit(FleetClusterGroupsListPagePo.url); + static goTo(clusterId: string): Cypress.Chainable { + return super.goTo(FleetClusterGroupsListPagePo.createPath(clusterId)); + } + + constructor(private clusterId = '_') { + super(FleetClusterGroupsListPagePo.createPath(clusterId)); } static navTo() { @@ -44,7 +46,7 @@ export class FleetClusterGroupsListPagePo extends PagePo { return this.self().find('[data-testid="masthead-create"]').click(); } - createFleetClusterGroupsForm(id? : string): FleetClusterGroupsCreateEditPo { - return new FleetClusterGroupsCreateEditPo(id); + createFleetClusterGroupsForm(workspace?: string, id? : string): FleetClusterGroupsCreateEditPo { + return new FleetClusterGroupsCreateEditPo(this.clusterId, workspace, id); } } diff --git a/cypress/e2e/tests/pages/fleet/cluster-groups.spec.ts b/cypress/e2e/tests/pages/fleet/cluster-groups.spec.ts index a6dcd9f381..6f185ee44c 100644 --- a/cypress/e2e/tests/pages/fleet/cluster-groups.spec.ts +++ b/cypress/e2e/tests/pages/fleet/cluster-groups.spec.ts @@ -1,63 +1,147 @@ import { FleetClusterGroupsListPagePo } from '@/cypress/e2e/po/pages/fleet/fleet.cattle.io.clustergroup.po'; import FleetClusterGroupDetailsPo from '@/cypress/e2e/po/detail/fleet/fleet.cattle.io.clustergroup.po'; import { HeaderPo } from '@/cypress/e2e/po/components/header.po'; +import PromptRemove from '@/cypress/e2e/po/prompts/promptRemove.po'; describe('Cluster Groups', { testIsolation: 'off', tags: ['@fleet', '@adminUser'] }, () => { const fleetClusterGroups = new FleetClusterGroupsListPagePo(); const headerPo = new HeaderPo(); + const localWorkspace = 'fleet-local'; + let clusterGroupName; + let removeClusterGroups = false; + const clusterGroupsToDelete = []; - describe('List', { tags: ['@vai', '@adminUser'] }, () => { - before(() => { - cy.login(); - }); - - it('check table headers are available in list and details view', () => { - const groupName = 'default'; - const workspace = 'fleet-local'; - - FleetClusterGroupsListPagePo.navTo(); - fleetClusterGroups.waitForPage(); - headerPo.selectWorkspace(workspace); - fleetClusterGroups.clusterGroupsList().rowWithName(groupName).checkVisible(); - - // check table headers - const expectedHeaders = ['State', 'Name', 'Clusters Ready', 'Resources', 'Age']; - - fleetClusterGroups.clusterGroupsList().resourceTable().sortableTable().tableHeaderRow() - .within('.table-header-container .content') - .each((el, i) => { - expect(el.text().trim()).to.eq(expectedHeaders[i]); - }); - - // go to fleet cluster details - fleetClusterGroups.goToDetailsPage(groupName); - - const fleetClusterGroupDetailsPage = new FleetClusterGroupDetailsPo(workspace, groupName); - - fleetClusterGroupDetailsPage.waitForPage(null, 'clusters'); - - // check table headers - const expectedHeadersDetailsView = ['State', 'Name', 'Bundles Ready', 'Repos Ready', 'Resources', 'Last Seen', 'Age']; - - fleetClusterGroupDetailsPage.clusterList().resourceTable().sortableTable() - .tableHeaderRow() - .within('.table-header-container .content') - .each((el, i) => { - expect(el.text().trim()).to.eq(expectedHeadersDetailsView[i]); - }); + before(() => { + cy.login(); + cy.createE2EResourceName('cluster-group').then((name) => { + clusterGroupName = name; }); }); - describe('Edit', { tags: ['@vai', '@adminUser'] }, () => { - before(() => { - cy.login(); - }); - it('can open "Edit as YAML"', () => { - FleetClusterGroupsListPagePo.navTo(); - fleetClusterGroups.waitForPage(); - fleetClusterGroups.clickCreate(); - fleetClusterGroups.createFleetClusterGroupsForm().editAsYaml().click(); - fleetClusterGroups.createFleetClusterGroupsForm().yamlEditor().checkExists(); - }); + it('can create cluster group', () => { + FleetClusterGroupsListPagePo.navTo(); + fleetClusterGroups.waitForPage(); + headerPo.selectWorkspace(localWorkspace); + fleetClusterGroups.clickCreate(); + fleetClusterGroups.createFleetClusterGroupsForm().waitForPage(); + + fleetClusterGroups.createFleetClusterGroupsForm().nameNsDescription().name().set(clusterGroupName); + fleetClusterGroups.createFleetClusterGroupsForm().saveCreateForm().cruResource().saveOrCreate() + .click() + .then(() => { + removeClusterGroups = true; + clusterGroupsToDelete.push(`${ localWorkspace }/${ clusterGroupName }`); + }); + + fleetClusterGroups.waitForPage(); + fleetClusterGroups.clusterGroupsList().details(clusterGroupName, 1).should('be.visible'); + }); + + it('can edit a cluster group', () => { + FleetClusterGroupsListPagePo.navTo(); + fleetClusterGroups.waitForPage(); + headerPo.selectWorkspace(localWorkspace); + fleetClusterGroups.clusterGroupsList().actionMenu(clusterGroupName).getMenuItem('Edit Config').click(); + fleetClusterGroups.createFleetClusterGroupsForm(localWorkspace, clusterGroupName).waitForPage('mode=edit'); + fleetClusterGroups.createFleetClusterGroupsForm().nameNsDescription().description().set(`${ clusterGroupName }-fleet-desc`); + fleetClusterGroups.createFleetClusterGroupsForm().saveCreateForm().cruResource().saveAndWaitForRequests('PUT', `v1/fleet.cattle.io.clustergroups/${ localWorkspace }/${ clusterGroupName }`) + .then(({ response }) => { + expect(response?.statusCode).to.eq(200); + expect(response?.body.metadata).to.have.property('name', clusterGroupName); + expect(response?.body.metadata.annotations).to.have.property('field.cattle.io/description', `${ clusterGroupName }-fleet-desc`); + }); + fleetClusterGroups.waitForPage(); + }); + + it('can clone a cluster group', () => { + FleetClusterGroupsListPagePo.navTo(); + fleetClusterGroups.waitForPage(); + headerPo.selectWorkspace(localWorkspace); + fleetClusterGroups.clusterGroupsList().actionMenu(clusterGroupName).getMenuItem('Clone').click(); + fleetClusterGroups.createFleetClusterGroupsForm(localWorkspace, clusterGroupName).waitForPage('mode=clone'); + fleetClusterGroups.createFleetClusterGroupsForm().nameNsDescription().name().set(`clone-${ clusterGroupName }`); + fleetClusterGroups.createFleetClusterGroupsForm().nameNsDescription().description().set(`${ clusterGroupName }-fleet-desc`); + fleetClusterGroups.createFleetClusterGroupsForm().saveCreateForm().cruResource().saveAndWaitForRequests('POST', 'v1/fleet.cattle.io.clustergroups') + .then(({ response }) => { + expect(response?.statusCode).to.eq(201); + removeClusterGroups = true; + clusterGroupsToDelete.push(`${ localWorkspace }/clone-${ clusterGroupName }`); + expect(response?.body.metadata).to.have.property('name', `clone-${ clusterGroupName }`); + expect(response?.body.metadata.annotations).to.have.property('field.cattle.io/description', `${ clusterGroupName }-fleet-desc`); + }); + fleetClusterGroups.waitForPage(); + fleetClusterGroups.clusterGroupsList().details(`clone-${ clusterGroupName }`, 1).should('be.visible'); + }); + + it('can delete cluster group', () => { + FleetClusterGroupsListPagePo.navTo(); + fleetClusterGroups.waitForPage(); + headerPo.selectWorkspace(localWorkspace); + fleetClusterGroups.clusterGroupsList().actionMenu(clusterGroupName).getMenuItem('Delete').click(); + fleetClusterGroups.clusterGroupsList().resourceTable().sortableTable().rowNames('.col-link-detail') + .then((rows: any) => { + const promptRemove = new PromptRemove(); + + cy.intercept('DELETE', `v1/fleet.cattle.io.clustergroups/${ localWorkspace }/clone-${ clusterGroupName }`).as('deleteClusterGroup'); + + promptRemove.remove(); + cy.wait('@deleteClusterGroup'); + fleetClusterGroups.waitForPage(); + fleetClusterGroups.clusterGroupsList().resourceTable().sortableTable().checkRowCount(false, rows.length - 1); + fleetClusterGroups.clusterGroupsList().resourceTable().sortableTable().rowNames('.col-link-detail') + .should('not.contain', `clone-${ clusterGroupName }`); + }); + }); + + // testing https://github.com/rancher/dashboard/issues/11687 + it('can open "Edit as YAML"', () => { + FleetClusterGroupsListPagePo.navTo(); + fleetClusterGroups.waitForPage(); + fleetClusterGroups.clickCreate(); + fleetClusterGroups.createFleetClusterGroupsForm().saveCreateForm().createEditView().editAsYaml(); + fleetClusterGroups.createFleetClusterGroupsForm().saveCreateForm().resourceYaml().codeMirror() + .checkExists(); + }); + + it('check table headers are available in list and details view', { tags: ['@vai', '@adminUser'] }, () => { + const groupName = 'default'; + + FleetClusterGroupsListPagePo.navTo(); + fleetClusterGroups.waitForPage(); + headerPo.selectWorkspace(localWorkspace); + fleetClusterGroups.clusterGroupsList().rowWithName(groupName).checkVisible(); + + // check table headers + const expectedHeaders = ['State', 'Name', 'Clusters Ready', 'Resources', 'Age']; + + fleetClusterGroups.clusterGroupsList().resourceTable().sortableTable().tableHeaderRow() + .within('.table-header-container .content') + .each((el, i) => { + expect(el.text().trim()).to.eq(expectedHeaders[i]); + }); + + // go to fleet cluster details + fleetClusterGroups.goToDetailsPage(groupName); + + const fleetClusterGroupDetailsPage = new FleetClusterGroupDetailsPo(localWorkspace, groupName); + + fleetClusterGroupDetailsPage.waitForPage(null, 'clusters'); + + // check table headers + const expectedHeadersDetailsView = ['State', 'Name', 'Bundles Ready', 'Repos Ready', 'Resources', 'Last Seen', 'Age']; + + fleetClusterGroupDetailsPage.clusterList().resourceTable().sortableTable() + .tableHeaderRow() + .within('.table-header-container .content') + .each((el, i) => { + expect(el.text().trim()).to.eq(expectedHeadersDetailsView[i]); + }); + }); + + after(() => { + if (removeClusterGroups) { + // delete gitrepo + clusterGroupsToDelete.forEach((r) => cy.deleteRancherResource('v1', 'fleet.cattle.io.clustergroups', r, false)); + } }); }); diff --git a/cypress/e2e/tests/pages/fleet/dashboard.spec.ts b/cypress/e2e/tests/pages/fleet/dashboard.spec.ts index 32125926db..5cd98f6040 100644 --- a/cypress/e2e/tests/pages/fleet/dashboard.spec.ts +++ b/cypress/e2e/tests/pages/fleet/dashboard.spec.ts @@ -3,7 +3,7 @@ import FleetGitRepoDetailsPo from '@/cypress/e2e/po/detail/fleet/fleet.cattle.io import { GitRepoCreatePo } from '@/cypress/e2e/po/pages/fleet/gitrepo-create.po'; import { GitRepoEditPo } from '@/cypress/e2e/po/edit/fleet/gitrepo-edit.po'; import BurgerMenuPo from '@/cypress/e2e/po/side-bars/burger-side-menu.po'; -import { LONG_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; +import { LONG_TIMEOUT_OPT, MEDIUM_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; import { gitRepoTargetAllClustersRequest } from '@/cypress/e2e/blueprints/fleet/gitrepos'; import { HeaderPo } from '@/cypress/e2e/po/components/header.po'; import { MenuActions } from '@/cypress/support/types/menu-actions'; @@ -118,11 +118,14 @@ describe('Fleet Dashboard', { tags: ['@fleet', '@adminUser', '@jenkins'] }, () = it('can clone a git repo', () => { const gitRepoEditPage = new GitRepoEditPo(localWorkspace, repoName); + cy.intercept('GET', '/v1/secrets?exclude=metadata.managedFields').as('getSecrets'); + fleetDashboardPage.goTo(); fleetDashboardPage.waitForPage(); fleetDashboardPage.sortableTable().rowActionMenuOpen(repoName).getMenuItem('Clone').click(); gitRepoEditPage.waitForPage('mode=clone'); + cy.wait('@getSecrets', MEDIUM_TIMEOUT_OPT).its('response.statusCode').should('eq', 200); gitRepoEditPage.title().contains(`Git Repo: Clone from ${ repoName }`).should('be.visible'); headerPo.selectWorkspace('fleet-default'); gitRepoEditPage.nameNsDescription().name().set(`clone-${ repoName }`); From 574248d1ce67bd5b8d3b6d95f716a979c22aaa9e Mon Sep 17 00:00:00 2001 From: Nancy <42977925+mantis-toboggan-md@users.noreply.github.com> Date: Tue, 14 Jan 2025 13:18:34 -0800 Subject: [PATCH 37/57] validate that AKS node pool count is no more than 1000 (#13039) * validate that AKS node pool count is no more than 1000 * update validation message --- pkg/aks/l10n/en-us.yaml | 4 ++-- pkg/aks/util/__tests__/validators.test.ts | 17 +++++++++++++++-- pkg/aks/util/validators.ts | 5 +++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/pkg/aks/l10n/en-us.yaml b/pkg/aks/l10n/en-us.yaml index 4ee4dd73be..db79c58314 100644 --- a/pkg/aks/l10n/en-us.yaml +++ b/pkg/aks/l10n/en-us.yaml @@ -163,8 +163,8 @@ aks: availabilityZones: Availability zones are not available in the selected region. privateDnsZone: Private DNS Zone Resource ID must be in the format /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCEGROUP_NAME/providers/Microsoft.Network/privateDnsZones/PRIVATE_DNS_ZONE_NAME. The Private DNS Zone Resource Name must be in the format privatelink.REGION.azmk8s.io, SUBZONE.privatelink.REGION.azmk8s.io, private.REGION.azmk8s.io, or SUBZONE.private.REGION.azmk8s.io poolName: Node pool names must be 1-12 characters long, consist only of lowercase letters and numbers, and start with a letter. - poolCount: Node count must be at least one in System pools. - poolUserCount: Node count cannot be less than zero. + poolCount: Node count must be at least 1 and at most 1000 in System pools. + poolUserCount: Node count cannot be less than 0 or greater than 1000 in User pools. poolMinMax: The minimum number of nodes must be less than or equal to the maximum number of nodes, and the node count must be between or equal to the minimum and maximum. poolMin: The minimum number of nodes must be greater than 0 and at most 1000. poolMax: The maximum number of nodes must be greater than 0 and at most 1000. diff --git a/pkg/aks/util/__tests__/validators.test.ts b/pkg/aks/util/__tests__/validators.test.ts index fe0b8f6aa2..51a2bbe425 100644 --- a/pkg/aks/util/__tests__/validators.test.ts +++ b/pkg/aks/util/__tests__/validators.test.ts @@ -140,19 +140,24 @@ describe('fx: nodePoolNames', () => { describe('fx: nodePoolCount', () => { // AksNodePool unit tests check that the second arg is passed in as expected - it('validates that count is at least 1 when second arg is false', () => { + it('validates that count is at least 1 and at most 1000 when second arg is false', () => { const validator = validators.nodePoolCount(mockCtx); expect(validator(1, false)).toBeUndefined(); expect(validator(0, false)).toStrictEqual(MOCK_TRANSLATION); + expect(validator(1000, false)).toBeUndefined(); + expect(validator(1001, false)).toStrictEqual(MOCK_TRANSLATION); }); - it('validates that count is at least 0 when second arg is true', () => { + it('validates that count is at least 0 and at most 1000 when second arg is true', () => { const validator = validators.nodePoolCount(mockCtx); expect(validator(1, true)).toBeUndefined(); expect(validator(0, true)).toBeUndefined(); + expect(validator(1000, true)).toBeUndefined(); + expect(validator(-1, true)).toStrictEqual(MOCK_TRANSLATION); + expect(validator(1001, true)).toStrictEqual(MOCK_TRANSLATION); }); it('validates each node pool in the provided context when not passed a count value', () => { @@ -170,6 +175,12 @@ describe('fx: nodePoolCount', () => { }, { name: 'klm', _validation: {}, mode: 'User', count: -1 + }, + { + name: 'nop', _validation: {}, mode: 'User', count: 1001 + }, + { + name: 'qrs', _validation: {}, mode: 'System', count: 1001 } ] as unknown as AKSNodePool[] }; @@ -180,5 +191,7 @@ describe('fx: nodePoolCount', () => { expect(ctx.nodePools[1]?._validation?._validCount).toStrictEqual(true); expect(ctx.nodePools[2]?._validation?._validCount).toStrictEqual(true); expect(ctx.nodePools[3]?._validation?._validCount).toStrictEqual(false); + expect(ctx.nodePools[4]?._validation?._validCount).toStrictEqual(false); + expect(ctx.nodePools[5]?._validation?._validCount).toStrictEqual(false); }); }); diff --git a/pkg/aks/util/validators.ts b/pkg/aks/util/validators.ts index 0c52340c27..484f75130c 100644 --- a/pkg/aks/util/validators.ts +++ b/pkg/aks/util/validators.ts @@ -181,6 +181,7 @@ export const nodePoolNamesUnique = (ctx: any) => { export const nodePoolCount = (ctx:any) => { return (count?: number, canBeZero = false) => { let min = 1; + const max = 1000; let errMsg = ctx.t('aks.errors.poolCount'); if (canBeZero) { @@ -188,7 +189,7 @@ export const nodePoolCount = (ctx:any) => { errMsg = ctx.t('aks.errors.poolUserCount'); } if (count || count === 0) { - return count >= min ? undefined : errMsg; + return count >= min && count <= max ? undefined : errMsg; } else { let allValid = true; @@ -201,7 +202,7 @@ export const nodePoolCount = (ctx:any) => { min = 1; } - if (count < min) { + if (count < min || count > max) { pool._validation['_validCount'] = false; allValid = false; } else { From 0cd9bff4aace99131b556403faae2a925a1b567d Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Wed, 15 Jan 2025 10:54:47 +0000 Subject: [PATCH 38/57] Update copyright for SUSE (#13117) --- README.md | 2 +- shell/assets/translations/en-us.yaml | 2 +- shell/assets/translations/zh-hans.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 20576a67cd..d490a5f284 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ We welcome external contributions - please refer to the internal documentation a License ======= -Copyright (c) 2014-2025 [Rancher Labs, Inc.](http://rancher.com) +Copyright (c) 2014-2025 [SUSE](https://www.suse.com) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/shell/assets/translations/en-us.yaml b/shell/assets/translations/en-us.yaml index 2319db7b81..bc4f0cf6a7 100644 --- a/shell/assets/translations/en-us.yaml +++ b/shell/assets/translations/en-us.yaml @@ -7780,7 +7780,7 @@ support: text: Run SUSE Rancher products with confidence, knowing that the developers who built them are available to quickly resolve issues. three: title: Troubleshooting - text: We focus on uncovering the root cause of any issue, whether it is related to Rancher Labs products, Kubernetes, Docker or your underlying infrastructure. + text: We focus on uncovering the root cause of any issue, whether it is related to SUSE products, Kubernetes, Docker or your underlying infrastructure. four: title: Innovate with Freedom text: Take advantage of our certified compatibility with a wide range of Kubernetes providers, operating systems, and open source software. diff --git a/shell/assets/translations/zh-hans.yaml b/shell/assets/translations/zh-hans.yaml index a9d117c01f..056d3438e7 100644 --- a/shell/assets/translations/zh-hans.yaml +++ b/shell/assets/translations/zh-hans.yaml @@ -7310,7 +7310,7 @@ support: text: 我们的开发人员会快速解决问题,因此你可以放心使用 SUSE Rancher 的产品。 three: title: 故障排除 - text: 无论你使用的 Rancher Labs 产品、Kubernetes、Docker 还是底层基础架构出现问题,我们都会努力找到问题的根本原因。 + text: 无论你使用的 SUSE 产品、Kubernetes、Docker 还是底层基础架构出现问题,我们都会努力找到问题的根本原因。 four: title: 自由创新 text: 基于我们与众多 Kubernetes 供应商、操作系统和开源软件认证的兼容性,实现自主创新。 From 91f6dcff2427ff60364860ca7230566b82b48464 Mon Sep 17 00:00:00 2001 From: Cody Jackson Date: Fri, 3 Jan 2025 15:59:10 -0700 Subject: [PATCH 39/57] Adding deprecated messaging to the performance settings page Fixes #12873 --- shell/assets/translations/en-us.yaml | 1 + .../pages/c/_cluster/settings/performance.vue | 45 ++++++++++++------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/shell/assets/translations/en-us.yaml b/shell/assets/translations/en-us.yaml index bc4f0cf6a7..057eef5c5c 100644 --- a/shell/assets/translations/en-us.yaml +++ b/shell/assets/translations/en-us.yaml @@ -7516,6 +7516,7 @@ performance: label: UI Performance Settings settingName: Performance experimental: This setting is experimental and may be removed or updated in future versions. + deprecatedForSSP: The "{setting}" setting is now deprecated and will be removed in a future release. Please use the Server-side Pagination setting instead. incrementalLoad: label: Incremental Loading setting: You can configure the threshold above which incremental loading will be used. diff --git a/shell/pages/c/_cluster/settings/performance.vue b/shell/pages/c/_cluster/settings/performance.vue index ab4f2e62fc..afa266f926 100644 --- a/shell/pages/c/_cluster/settings/performance.vue +++ b/shell/pages/c/_cluster/settings/performance.vue @@ -209,7 +209,9 @@ export default {
-

{{ t('performance.serverPagination.label') }}

+

+ {{ t('performance.serverPagination.label') }} +

{{ t('performance.serverPagination.description') }}

{{ t('performance.incrementalLoad.label') }}

+ + +

{{ t('performance.incrementalLoad.description') }}

-

{{ t('performance.manualRefresh.description') }}

+ color="warning" + > + + +

{{ t('performance.manualRefresh.description') }}

-

{{ t('performance.gc.description') }}

+ color="warning" + > + + +

{{ t('performance.gc.description') }}

{{ t('performance.nsFiltering.label') }}

-

{{ t('performance.nsFiltering.description') }}

+ color="warning" + > + + +

{{ t('performance.nsFiltering.description') }}

{{ t('performance.advancedWorker.label') }}

-

{{ t('performance.advancedWorker.description') }}

+ color="warning" + > + + +

{{ t('performance.advancedWorker.description') }}

Date: Wed, 15 Jan 2025 21:05:27 +0000 Subject: [PATCH 40/57] Bump actions/checkout from 2 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/add-issue-labels.yaml | 2 +- .github/workflows/build-and-upload.yaml | 4 ++-- .github/workflows/build-test.yaml | 6 +++--- .github/workflows/docusaurus.yaml | 2 +- .github/workflows/extensions-compatibility-tests.yaml | 2 +- .github/workflows/pr-gh-project.yaml | 2 +- .github/workflows/release-rancher-components.yml | 2 +- .github/workflows/release-shell-pkg.yaml | 4 ++-- .github/workflows/valid-pr-description.yaml | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/add-issue-labels.yaml b/.github/workflows/add-issue-labels.yaml index 8db01a51cc..3f0370a7d4 100644 --- a/.github/workflows/add-issue-labels.yaml +++ b/.github/workflows/add-issue-labels.yaml @@ -9,7 +9,7 @@ jobs: permissions: issues: write steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: diff --git a/.github/workflows/build-and-upload.yaml b/.github/workflows/build-and-upload.yaml index 434ca3bef7..782d61bcfc 100644 --- a/.github/workflows/build-and-upload.yaml +++ b/.github/workflows/build-and-upload.yaml @@ -22,7 +22,7 @@ jobs: name: Build & Upload Hosted runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 @@ -69,7 +69,7 @@ jobs: name: Build & Upload Embedded runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml index b8ba454680..20b93e7417 100644 --- a/.github/workflows/build-test.yaml +++ b/.github/workflows/build-test.yaml @@ -9,7 +9,7 @@ jobs: unit-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 @@ -19,7 +19,7 @@ jobs: i18n: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 @@ -29,7 +29,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 diff --git a/.github/workflows/docusaurus.yaml b/.github/workflows/docusaurus.yaml index 38056fe031..8992a5d71d 100644 --- a/.github/workflows/docusaurus.yaml +++ b/.github/workflows/docusaurus.yaml @@ -12,7 +12,7 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' diff --git a/.github/workflows/extensions-compatibility-tests.yaml b/.github/workflows/extensions-compatibility-tests.yaml index e8a2e50ce9..19fbdbad0a 100644 --- a/.github/workflows/extensions-compatibility-tests.yaml +++ b/.github/workflows/extensions-compatibility-tests.yaml @@ -30,7 +30,7 @@ jobs: ] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 - name: Setup env diff --git a/.github/workflows/pr-gh-project.yaml b/.github/workflows/pr-gh-project.yaml index dcb875c3da..1e140d2734 100644 --- a/.github/workflows/pr-gh-project.yaml +++ b/.github/workflows/pr-gh-project.yaml @@ -12,7 +12,7 @@ jobs: id-token: write runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: diff --git a/.github/workflows/release-rancher-components.yml b/.github/workflows/release-rancher-components.yml index 3d2061544d..4a56c15bdc 100644 --- a/.github/workflows/release-rancher-components.yml +++ b/.github/workflows/release-rancher-components.yml @@ -12,7 +12,7 @@ jobs: contents: read packages: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/release-shell-pkg.yaml b/.github/workflows/release-shell-pkg.yaml index 1e41425078..3ab06bb95b 100644 --- a/.github/workflows/release-shell-pkg.yaml +++ b/.github/workflows/release-shell-pkg.yaml @@ -33,7 +33,7 @@ jobs: steps: - if: inputs.is_test == 'true' && inputs.test_branch != '' name: Checkout (test flow) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false ref: ${{ inputs.test_branch }} @@ -41,7 +41,7 @@ jobs: - if: inputs.is_test != 'true' name: Checkout (normal flow) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false diff --git a/.github/workflows/valid-pr-description.yaml b/.github/workflows/valid-pr-description.yaml index 72e7ff85b7..c69cf30967 100644 --- a/.github/workflows/valid-pr-description.yaml +++ b/.github/workflows/valid-pr-description.yaml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Validate checklist has been completed env: From 55b5e780682bc37a53c744136a4d3e864d4faae2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:05:38 +0000 Subject: [PATCH 41/57] Bump actions/download-artifact from 3 to 4 Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-extension-charts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-extension-charts.yml b/.github/workflows/build-extension-charts.yml index 1e7720bb28..1486237cba 100644 --- a/.github/workflows/build-extension-charts.yml +++ b/.github/workflows/build-extension-charts.yml @@ -132,7 +132,7 @@ jobs: git config user.email 'github-actions[bot]@users.noreply.github.com' - name: Download build artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: charts From 668f56871d8d03210049b65e2367ee4699ed2d4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:07:24 +0000 Subject: [PATCH 42/57] Bump cross-env from 6.0.3 to 7.0.3 in /shell Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 6.0.3 to 7.0.3. - [Release notes](https://github.com/kentcdodds/cross-env/releases) - [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md) - [Commits](https://github.com/kentcdodds/cross-env/compare/v6.0.3...v7.0.3) --- updated-dependencies: - dependency-name: cross-env dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- shell/package.json | 2 +- shell/yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/shell/package.json b/shell/package.json index 39e370f36f..b5c8593edd 100644 --- a/shell/package.json +++ b/shell/package.json @@ -65,7 +65,7 @@ "core-js": "3.25.3", "cron-validator": "1.3.1", "cronstrue": "2.50.0", - "cross-env": "6.0.3", + "cross-env": "7.0.3", "css-loader": "6.7.3", "csv-loader": "3.0.3", "custom-event-polyfill": "^1.0.7", diff --git a/shell/yarn.lock b/shell/yarn.lock index e010f3982c..8f4d92cd64 100644 --- a/shell/yarn.lock +++ b/shell/yarn.lock @@ -6025,12 +6025,12 @@ cronstrue@2.50.0: resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.50.0.tgz#eabba0f915f186765258b707b7a3950c663b5573" integrity sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg== -cross-env@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" - integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.1" cross-spawn@^6.0.0: version "6.0.5" @@ -6043,10 +6043,10 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" From 5acabe273f684f23c6349e20b235b18e13e1337b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:07:34 +0000 Subject: [PATCH 43/57] Bump jexl from 2.2.2 to 2.3.0 in /shell Bumps [jexl](https://github.com/TomFrost/jexl) from 2.2.2 to 2.3.0. - [Changelog](https://github.com/TomFrost/Jexl/blob/master/CHANGELOG.md) - [Commits](https://github.com/TomFrost/jexl/compare/v2.2.2...v2.3.0) --- updated-dependencies: - dependency-name: jexl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- shell/package.json | 2 +- shell/yarn.lock | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/shell/package.json b/shell/package.json index 39e370f36f..dadd14305e 100644 --- a/shell/package.json +++ b/shell/package.json @@ -97,7 +97,7 @@ "is-url": "1.2.4", "jest": "27.5.1", "jest-serializer-vue": "2.0.2", - "jexl": "2.2.2", + "jexl": "2.3.0", "jquery": "3.5.1", "js-cookie": "2.2.1", "js-yaml": "4.1.0", diff --git a/shell/yarn.lock b/shell/yarn.lock index e010f3982c..1cd9c63775 100644 --- a/shell/yarn.lock +++ b/shell/yarn.lock @@ -2452,10 +2452,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.12.13", "@babel/runtime@^7.8.4": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" - integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.8.4": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: regenerator-runtime "^0.14.0" @@ -9505,10 +9505,12 @@ jest@27.5.1: import-local "^3.0.2" jest-cli "^27.5.1" -jexl@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/jexl/-/jexl-2.2.2.tgz#eb06cd84684a52b6408be94604c5529f416ccd2f" - integrity sha512-HYDGbiZtGLbaxp1b0S7Nqbtegu5zhxaUBzsrMIpoEJDNr1M8lSuowpO7ziXldc/+wGGvwkZYQSS8mW2cPpiGgA== +jexl@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/jexl/-/jexl-2.3.0.tgz#73e0694d86ca917ac24fed753f201c1db59a46c5" + integrity sha512-ecqln4kTWNkMwbFvTukOMDq1jy1GcPzvshhMp/s4pxU86xdLDq7HbDRa87DfMfbSAOS8V6EwvCdfs0S+w/iycA== + dependencies: + "@babel/runtime" "^7.10.2" joi@^17.4.0: version "17.13.3" From c9fc840ecc9d617909d7d17044f3c7c51d3ed6c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:08:51 +0000 Subject: [PATCH 44/57] Bump @popperjs/core from 2.4.4 to 2.11.8 Bumps [@popperjs/core](https://github.com/popperjs/popper-core) from 2.4.4 to 2.11.8. - [Release notes](https://github.com/popperjs/popper-core/releases) - [Commits](https://github.com/popperjs/popper-core/compare/v2.4.4...v2.11.8) --- updated-dependencies: - dependency-name: "@popperjs/core" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 603c6900cb..27dbf91833 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@aws-sdk/client-iam": "3.658.1", "@aws-sdk/client-kms": "3.8.1", "@novnc/novnc": "1.2.0", - "@popperjs/core": "2.4.4", + "@popperjs/core": "2.11.8", "@rancher/icons": "2.0.29", "ansi_up": "5.0.0", "axios": "0.21.4", diff --git a/yarn.lock b/yarn.lock index 9bba36ee0c..0b79fb4d1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3014,10 +3014,10 @@ resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== -"@popperjs/core@2.4.4": - version "2.4.4" - resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.4.4.tgz#11d5db19bd178936ec89cd84519c4de439574398" - integrity sha512-1oO6+dN5kdIA3sKPZhRGJTfGVP4SWV6KqlMOwry4J3HfyD68sl/3KmG7DeYUzvN+RbhXDnv/D8vNNB8168tAMg== +"@popperjs/core@2.11.8": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": version "2.11.7" @@ -7763,7 +7763,6 @@ eslint-plugin-jest@24.4.0: "eslint-plugin-local-rules@link:./eslint-plugin-local-rules": version "0.0.0" - uid "" "eslint-plugin-local-rules@link:eslint-plugin-local-rules": version "0.0.0" From cc736d743f28114b25c43356bb5b8c27e4fa195a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:08:52 +0000 Subject: [PATCH 45/57] Bump cross-env from 6.0.3 to 7.0.3 Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 6.0.3 to 7.0.3. - [Release notes](https://github.com/kentcdodds/cross-env/releases) - [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md) - [Commits](https://github.com/kentcdodds/cross-env/compare/v6.0.3...v7.0.3) --- updated-dependencies: - dependency-name: cross-env dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 603c6900cb..bc58012a08 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "cookie-universal": "2.2.2", "cron-validator": "1.2.0", "cronstrue": "1.95.0", - "cross-env": "6.0.3", + "cross-env": "7.0.3", "custom-event-polyfill": "1.0.7", "d3": "7.3.0", "d3-selection": "1.4.1", diff --git a/yarn.lock b/yarn.lock index 9bba36ee0c..e1e4d9a8a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6387,12 +6387,12 @@ cronstrue@2.50.0: resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.50.0.tgz#eabba0f915f186765258b707b7a3950c663b5573" integrity sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg== -cross-env@6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" - integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.1" cross-spawn@^5.0.1: version "5.1.0" @@ -6414,10 +6414,10 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -7763,7 +7763,6 @@ eslint-plugin-jest@24.4.0: "eslint-plugin-local-rules@link:./eslint-plugin-local-rules": version "0.0.0" - uid "" "eslint-plugin-local-rules@link:eslint-plugin-local-rules": version "0.0.0" From 3e78764a601831ea0ab55b3a36d6d318181e3b3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:08:53 +0000 Subject: [PATCH 46/57] Bump jexl from 2.2.2 to 2.3.0 Bumps [jexl](https://github.com/TomFrost/jexl) from 2.2.2 to 2.3.0. - [Changelog](https://github.com/TomFrost/Jexl/blob/master/CHANGELOG.md) - [Commits](https://github.com/TomFrost/jexl/compare/v2.2.2...v2.3.0) --- updated-dependencies: - dependency-name: jexl dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 603c6900cb..80bd5fea17 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "ip": "2.0.1", "ipaddr.js": "2.2.0", "is-url": "1.2.4", - "jexl": "2.2.2", + "jexl": "2.3.0", "jquery": "3.5.1", "js-cookie": "2.2.1", "js-yaml": "4.1.0", diff --git a/yarn.lock b/yarn.lock index 9bba36ee0c..98d1544eb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2453,10 +2453,10 @@ resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.12.13", "@babel/runtime@^7.8.4": - version "7.25.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" - integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.8.4": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: regenerator-runtime "^0.14.0" @@ -7763,7 +7763,6 @@ eslint-plugin-jest@24.4.0: "eslint-plugin-local-rules@link:./eslint-plugin-local-rules": version "0.0.0" - uid "" "eslint-plugin-local-rules@link:eslint-plugin-local-rules": version "0.0.0" @@ -10279,10 +10278,12 @@ jest@27.5.1: import-local "^3.0.2" jest-cli "^27.5.1" -jexl@2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/jexl/-/jexl-2.2.2.tgz#eb06cd84684a52b6408be94604c5529f416ccd2f" - integrity sha512-HYDGbiZtGLbaxp1b0S7Nqbtegu5zhxaUBzsrMIpoEJDNr1M8lSuowpO7ziXldc/+wGGvwkZYQSS8mW2cPpiGgA== +jexl@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/jexl/-/jexl-2.3.0.tgz#73e0694d86ca917ac24fed753f201c1db59a46c5" + integrity sha512-ecqln4kTWNkMwbFvTukOMDq1jy1GcPzvshhMp/s4pxU86xdLDq7HbDRa87DfMfbSAOS8V6EwvCdfs0S+w/iycA== + dependencies: + "@babel/runtime" "^7.10.2" joi@^17.4.0: version "17.13.3" From 89c0e9fec2481ba6820ce4e8faec8caf14a84f67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:18:02 +0000 Subject: [PATCH 47/57] Bump @popperjs/core from 2.4.4 to 2.11.8 in /shell Bumps [@popperjs/core](https://github.com/popperjs/popper-core) from 2.4.4 to 2.11.8. - [Release notes](https://github.com/popperjs/popper-core/releases) - [Commits](https://github.com/popperjs/popper-core/compare/v2.4.4...v2.11.8) --- updated-dependencies: - dependency-name: "@popperjs/core" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- shell/package.json | 2 +- shell/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/shell/package.json b/shell/package.json index 39e370f36f..fc6ca80fb9 100644 --- a/shell/package.json +++ b/shell/package.json @@ -36,7 +36,7 @@ "@babel/plugin-proposal-private-property-in-object": "7.14.5", "@babel/preset-typescript": "7.16.7", "@novnc/novnc": "1.2.0", - "@popperjs/core": "2.4.4", + "@popperjs/core": "2.11.8", "@rancher/icons": "2.0.29", "@types/is-url": "1.2.30", "@types/node": "20.10.8", diff --git a/shell/yarn.lock b/shell/yarn.lock index e010f3982c..9e9c5bfa96 100644 --- a/shell/yarn.lock +++ b/shell/yarn.lock @@ -2917,10 +2917,10 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== -"@popperjs/core@2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.4.4.tgz#11d5db19bd178936ec89cd84519c4de439574398" - integrity sha512-1oO6+dN5kdIA3sKPZhRGJTfGVP4SWV6KqlMOwry4J3HfyD68sl/3KmG7DeYUzvN+RbhXDnv/D8vNNB8168tAMg== +"@popperjs/core@2.11.8": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7": version "2.11.7" From 7a4b3d1b57bed72c4edef7055564ee9845dfce89 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Thu, 16 Jan 2025 11:36:08 +0000 Subject: [PATCH 48/57] Fix gitrepo bundle list and bundle list when there's a gitrepo that does not target any clusters --- shell/components/fleet/FleetBundles.vue | 3 ++- shell/list/fleet.cattle.io.bundle.vue | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/shell/components/fleet/FleetBundles.vue b/shell/components/fleet/FleetBundles.vue index 8a6088166c..c9004d1b7c 100644 --- a/shell/components/fleet/FleetBundles.vue +++ b/shell/components/fleet/FleetBundles.vue @@ -127,7 +127,8 @@ export default { class="text-warning" > {{ row.status.summary.ready }}/{{ row.status.summary.desiredReady }} - {{ row.status.summary.desiredReady }} + {{ row.status.summary.desiredReady }} + -
diff --git a/shell/list/fleet.cattle.io.bundle.vue b/shell/list/fleet.cattle.io.bundle.vue index 4b5aaed673..aa53c04420 100644 --- a/shell/list/fleet.cattle.io.bundle.vue +++ b/shell/list/fleet.cattle.io.bundle.vue @@ -115,11 +115,11 @@ export default { > From 9d8b5fa6695f6ffad5a14c238d14588f0ab488e6 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Thu, 16 Jan 2025 15:51:47 +0000 Subject: [PATCH 49/57] Disable sorry cypress --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 87207ac7bd..894f079e70 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "e2e:dev": "START_SERVER_AND_TEST_INSECURE=1 server-test start:dev https-get://localhost:8005 cy:run:sorry", "e2e:build": "mkdir dist && TEST_INSTRUMENT=false ./scripts/build-e2e", "e2e:docker": "yarn docker:local:stop && ./scripts/e2e-docker-start $RANCHER_VERSION_E2E", - "e2e:prod": "BUILD_DASHBOARD=$BUILD_DASHBOARD GREP_TAGS=$GREP_TAGS TEST_USERNAME=$TEST_USERNAME TEST_BASE_URL=https://127.0.0.1/dashboard yarn cy:run:sorry", + "e2e:prod": "BUILD_DASHBOARD=$BUILD_DASHBOARD GREP_TAGS=$GREP_TAGS TEST_USERNAME=$TEST_USERNAME TEST_BASE_URL=https://127.0.0.1/dashboard yarn cy:run", "coverage": "npx nyc merge coverage coverage/coverage.json", "storybook": "cd storybook && yarn storybook", "build-storybook": "cd storybook && yarn install --no-lockfile && NODE_OPTIONS=--max_old_space_size=4096 yarn build-storybook --quiet", From 4b13823870081706ba2fdbff1536cfbf01c35270 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:05:25 +0000 Subject: [PATCH 50/57] Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-extension-charts.yml | 2 +- .github/workflows/check-plugins.yaml | 2 +- .github/workflows/extensions-compatibility-tests.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-extension-charts.yml b/.github/workflows/build-extension-charts.yml index 1e7720bb28..b0a3a1bb7d 100644 --- a/.github/workflows/build-extension-charts.yml +++ b/.github/workflows/build-extension-charts.yml @@ -103,7 +103,7 @@ jobs: - name: Upload charts artifact if: github.ref_type == 'tag' || (github.ref == 'refs/heads/main' && github.event_name != 'pull_request') || inputs.is_test == 'true' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: charts path: tmp diff --git a/.github/workflows/check-plugins.yaml b/.github/workflows/check-plugins.yaml index a8fbb48be6..de3f416eff 100644 --- a/.github/workflows/check-plugins.yaml +++ b/.github/workflows/check-plugins.yaml @@ -26,7 +26,7 @@ jobs: shell: bash - name: Upload files - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: test diff --git a/.github/workflows/extensions-compatibility-tests.yaml b/.github/workflows/extensions-compatibility-tests.yaml index 19fbdbad0a..5c8c15a40f 100644 --- a/.github/workflows/extensions-compatibility-tests.yaml +++ b/.github/workflows/extensions-compatibility-tests.yaml @@ -60,7 +60,7 @@ jobs: # Upload to sorry cypress in case of failure - name: Upload screenshots - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ failure() }} with: name: ${{github.run_number}}-${{github.run_attempt}}-extensions-compatibility-tests-screenshots-${{ matrix.role.tag }}+${{ matrix.features[0] }} From 3457d9cff578f46b74a2ed26668f53eb9c6a30a2 Mon Sep 17 00:00:00 2001 From: Phillip Rak Date: Thu, 16 Jan 2025 10:38:55 -0700 Subject: [PATCH 51/57] Merge cypress screenshots artifacts Signed-off-by: Phillip Rak --- .github/workflows/extensions-compatibility-tests.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/extensions-compatibility-tests.yaml b/.github/workflows/extensions-compatibility-tests.yaml index 5c8c15a40f..104a96303f 100644 --- a/.github/workflows/extensions-compatibility-tests.yaml +++ b/.github/workflows/extensions-compatibility-tests.yaml @@ -63,8 +63,14 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ failure() }} with: - name: ${{github.run_number}}-${{github.run_attempt}}-extensions-compatibility-tests-screenshots-${{ matrix.role.tag }}+${{ matrix.features[0] }} + name: ${{github.run_number}}-${{github.run_attempt}}-extensions-compatibility-tests-screenshots-${{ matrix.role.tag }}+${{ matrix.features[0] }}-${{ matrix.rancherEnv }} path: cypress/screenshots + + - name: Merge Artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: ${{github.run_number}}-${{github.run_attempt}}-extensions-compatibility-tests-screenshots-${{ matrix.role.tag }}+${{ matrix.features[0] }} + pattern: ${{github.run_number}}-${{github.run_attempt}}-extensions-compatibility-tests-screenshots-* # Slack message with outcome - success - name: Slack message in workflow success @@ -88,4 +94,4 @@ jobs: curl -X POST \ -H "Content-type: application/json; charset=utf-8" \ --data '{"name": "${{ matrix.rancherEnv[0] }} - image:${{ matrix.rancherEnv[1] }} - ${{ matrix.features[1] }}", "status": "Workflow failed! 🆘", "workflow_run": ${{ github.run_id }} }' \ - $SLACK_URL \ No newline at end of file + $SLACK_URL From 7862722ab2fd3a0548582aac5f49001920926ec0 Mon Sep 17 00:00:00 2001 From: Yonas Berhe Date: Wed, 15 Jan 2025 05:05:37 -0800 Subject: [PATCH 52/57] automation: fix flaky tests based on jenkins failures --- cypress/e2e/po/pages/extensions.po.ts | 12 +++++++++--- .../tests/pages/explorer/apps/charts.spec.ts | 12 ++++++++++-- .../pages/explorer/apps/repositories.spec.ts | 2 +- .../tests/pages/extensions/extensions.spec.ts | 17 ++++++++++++++++- .../tests/pages/extensions/kubewarden.spec.ts | 15 +++++++++++++-- 5 files changed, 49 insertions(+), 9 deletions(-) diff --git a/cypress/e2e/po/pages/extensions.po.ts b/cypress/e2e/po/pages/extensions.po.ts index 0390b02453..ec2706bbf9 100644 --- a/cypress/e2e/po/pages/extensions.po.ts +++ b/cypress/e2e/po/pages/extensions.po.ts @@ -7,7 +7,7 @@ import RepositoriesPagePo from '@/cypress/e2e/po/pages/chart-repositories.po'; import BannersPo from '@/cypress/e2e/po/components/banners.po'; import ChartRepositoriesCreateEditPo from '@/cypress/e2e/po/edit/chart-repositories.po'; import AppClusterRepoEditPo from '@/cypress/e2e/po/edit/catalog.cattle.io.clusterrepo.po'; -import { LONG_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; +import { LONG_TIMEOUT_OPT, MEDIUM_TIMEOUT_OPT } from '@/cypress/support/utils/timeouts'; export default class ExtensionsPagePo extends PagePo { static url = '/c/local/uiplugins' @@ -34,7 +34,7 @@ export default class ExtensionsPagePo extends PagePo { return this.title().should('contain', 'Extensions'); } - loading() { + loading(options: any) { return this.self().get('.data-loading'); } @@ -50,12 +50,16 @@ export default class ExtensionsPagePo extends PagePo { * @returns {Cypress.Chainable} */ addExtensionsRepository(repo: string, branch: string, name: string): Cypress.Chainable { + cy.intercept('GET', '/v1/catalog.cattle.io.clusterrepos?exclude=metadata.managedFields').as('getRepos'); + // we should be on the extensions page - this.waitForPage(); + this.waitForPage(null, 'available'); + this.loading(MEDIUM_TIMEOUT_OPT).should('not.exist'); // go to app repos this.extensionMenuToggle(); this.manageReposClick(); + cy.wait('@getRepos').its('response.statusCode').should('eq', 200); // create a new clusterrepo const appRepoList = new RepositoriesPagePo('local', 'apps'); @@ -82,6 +86,8 @@ export default class ExtensionsPagePo extends PagePo { appRepoList.waitForPage(); appRepoList.list().state(name).should('contain', 'Active'); + + return cy.wrap(appRepoList.list()); } /** diff --git a/cypress/e2e/tests/pages/explorer/apps/charts.spec.ts b/cypress/e2e/tests/pages/explorer/apps/charts.spec.ts index d9cc8daf6e..20e89ef0ef 100644 --- a/cypress/e2e/tests/pages/explorer/apps/charts.spec.ts +++ b/cypress/e2e/tests/pages/explorer/apps/charts.spec.ts @@ -6,6 +6,8 @@ const chartsPage = new ChartsPage(); describe('Apps/Charts', { tags: ['@explorer', '@adminUser'] }, () => { beforeEach(() => { + cy.intercept('GET', '/v1/catalog.cattle.io.clusterrepos/**').as('fetchChartData'); + cy.login(); chartsPage.goTo(); chartsPage.waitForPage(); @@ -94,6 +96,9 @@ describe('Apps/Charts', { tags: ['@explorer', '@adminUser'] }, () => { it('should call fetch when route query changes with valid parameters', () => { const chartName = 'Logging'; + cy.wait('@fetchChartData'); + cy.get('@fetchChartData.all').should('have.length.at.least', 3); + chartsPage.getChartByName(chartName) .should('exist') .scrollIntoView() @@ -105,16 +110,19 @@ describe('Apps/Charts', { tags: ['@explorer', '@adminUser'] }, () => { chartPage.waitForPage(); // Set up intercept for the network request triggered by $fetch - cy.intercept('GET', '**/v1/catalog.cattle.io.clusterrepos/**').as('fetchChartData'); + cy.intercept('GET', '**/v1/catalog.cattle.io.clusterrepos/**').as('fetchChartDataAfterSelect'); chartPage.selectVersion('103.1.1+up4.4.0'); - cy.wait('@fetchChartData').its('response.statusCode').should('eq', 200); + cy.wait('@fetchChartDataAfterSelect').its('response.statusCode').should('eq', 200); }); it('should not call fetch when navigating back to charts page', () => { const chartName = 'Logging'; + cy.wait('@fetchChartData'); + cy.get('@fetchChartData.all').should('have.length.at.least', 3); + chartsPage.getChartByName(chartName) .should('exist') .scrollIntoView() diff --git a/cypress/e2e/tests/pages/explorer/apps/repositories.spec.ts b/cypress/e2e/tests/pages/explorer/apps/repositories.spec.ts index b8e7042396..54fcebbd33 100644 --- a/cypress/e2e/tests/pages/explorer/apps/repositories.spec.ts +++ b/cypress/e2e/tests/pages/explorer/apps/repositories.spec.ts @@ -172,7 +172,7 @@ describe('Apps', () => { cy.intercept('GET', '/v1/catalog.cattle.io.clusterrepos/rancher-charts?*').as('rancherCharts1'); // Nav to a summary page for a specific chart - ChartsPage.navTo(clusterId); + chartsPage.goTo(); chartsPage.chartsFilterCategoriesSelect().toggle(); chartsPage.chartsFilterCategoriesSelect().clickOptionWithLabel('All Categories'); chartsPage.chartsFilterReposSelect().toggle(); diff --git a/cypress/e2e/tests/pages/extensions/extensions.spec.ts b/cypress/e2e/tests/pages/extensions/extensions.spec.ts index 6b8c4e01a2..f208c05fc6 100644 --- a/cypress/e2e/tests/pages/extensions/extensions.spec.ts +++ b/cypress/e2e/tests/pages/extensions/extensions.spec.ts @@ -8,6 +8,7 @@ import { NamespaceFilterPo } from '@/cypress/e2e/po/components/namespace-filter. const namespaceFilter = new NamespaceFilterPo(); const cluster = 'local'; +let removeExtensions = false; const DISABLED_CACHE_EXTENSION_NAME = 'large-extension'; // const DISABLED_CACHE_EXTENSION_MENU_LABEL = 'Large-extension'; @@ -16,6 +17,7 @@ const UNAUTHENTICATED_EXTENSION_NAME = 'uk-locale'; const EXTENSION_NAME = 'clock'; const UI_PLUGINS_PARTNERS_REPO_URL = 'https://github.com/rancher/partner-extensions'; const UI_PLUGINS_PARTNERS_REPO_NAME = 'partner-extensions'; +const GIT_REPO_NAME = 'rancher-plugin-examples'; describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { beforeEach(() => { @@ -69,7 +71,9 @@ describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { extensionsPo.extensionTabInstalledClick(); // Avoid nav guard failures that probably auto move user to this tab // install the rancher plugin examples - extensionsPo.addExtensionsRepository('https://github.com/rancher/ui-plugin-examples', 'main', 'rancher-plugin-examples'); + extensionsPo.addExtensionsRepository('https://github.com/rancher/ui-plugin-examples', 'main', GIT_REPO_NAME).then(() => { + removeExtensions = true; + }); }); it('has the correct title for Prime users and should display banner on main extensions screen EVEN IF setting is empty string', () => { @@ -253,9 +257,11 @@ describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { }); it('Should install an extension', () => { + cy.intercept('POST', `/v1/catalog.cattle.io.clusterrepos/${ GIT_REPO_NAME }?action=install`).as('installExtension'); const extensionsPo = new ExtensionsPagePo(); extensionsPo.goTo(); + extensionsPo.waitForPage(); extensionsPo.extensionTabAvailableClick(); extensionsPo.waitForPage(null, 'available'); @@ -267,6 +273,7 @@ describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { // select version and click install extensionsPo.installModalSelectVersionClick(2); extensionsPo.installModalInstallClick(); + cy.wait('@installExtension').its('response.statusCode').should('eq', 201); // let's check the extension reload banner and reload the page extensionsPo.extensionReloadBanner().should('be.visible'); @@ -297,6 +304,7 @@ describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { }); it('Should update an extension version', () => { + cy.intercept('POST', `/v1/catalog.cattle.io.clusterrepos/${ GIT_REPO_NAME }?action=upgrade`).as('upgradeExtension'); const extensionsPo = new ExtensionsPagePo(); extensionsPo.goTo(); @@ -308,6 +316,7 @@ describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { // click on update button on card extensionsPo.extensionCardUpdateClick(EXTENSION_NAME); extensionsPo.installModalInstallClick(); + cy.wait('@upgradeExtension').its('response.statusCode').should('eq', 201); // let's check the extension reload banner and reload the page extensionsPo.extensionReloadBanner().should('be.visible'); @@ -515,4 +524,10 @@ describe('Extensions page', { tags: ['@extensions', '@adminUser'] }, () => { extensionsPo.extensionCardClick(DISABLED_CACHE_EXTENSION_NAME); extensionsPo.extensionDetailsTitle().should('contain', DISABLED_CACHE_EXTENSION_NAME); }); + + after(() => { + if ( removeExtensions ) { + cy.deleteRancherResource('v1', 'catalog.cattle.io.clusterrepos', GIT_REPO_NAME); + } + }); }); diff --git a/cypress/e2e/tests/pages/extensions/kubewarden.spec.ts b/cypress/e2e/tests/pages/extensions/kubewarden.spec.ts index 73eb234ce6..a39d9b7a14 100644 --- a/cypress/e2e/tests/pages/extensions/kubewarden.spec.ts +++ b/cypress/e2e/tests/pages/extensions/kubewarden.spec.ts @@ -6,8 +6,10 @@ import KubewardenExtensionPo from '@/cypress/e2e/po/pages/extensions/kubewarden. import { catchTargetPageException } from '@/cypress/support/utils/exception-utils'; const extensionName = 'kubewarden'; +const gitRepoName = 'rancher-extensions'; +let removeExtensions = false; -describe('Kubewarden Extension', { tags: ['@extensions-temp-excluded', '@adminUser'] }, () => { +describe('Kubewarden Extension', { tags: ['@extensions', '@adminUser'] }, () => { before(() => { catchTargetPageException('Navigation cancelled'); cy.login(); @@ -18,7 +20,9 @@ describe('Kubewarden Extension', { tags: ['@extensions-temp-excluded', '@adminUs extensionsPo.waitForPage(); // install the ui-plugin-charts repo - extensionsPo.addExtensionsRepository('https://github.com/rancher/ui-plugin-charts', 'main', 'rancher-extensions'); + extensionsPo.addExtensionsRepository('https://github.com/rancher/ui-plugin-charts', 'main', gitRepoName).then(() => { + removeExtensions = true; + }); }); beforeEach(() => { @@ -32,6 +36,7 @@ describe('Kubewarden Extension', { tags: ['@extensions-temp-excluded', '@adminUs extensionsPo.waitForPage(); extensionsPo.extensionTabAvailableClick(); + extensionsPo.waitForPage(null, 'available'); // click on install button on card extensionsPo.extensionCardInstallClick(extensionName); @@ -110,4 +115,10 @@ describe('Kubewarden Extension', { tags: ['@extensions-temp-excluded', '@adminUs extensionsPo.extensionCardClick(extensionName); extensionsPo.extensionDetailsTitle().should('contain', extensionName); }); + + after(() => { + if ( removeExtensions ) { + cy.deleteRancherResource('v1', 'catalog.cattle.io.clusterrepos', gitRepoName); + } + }); }); From beef20e10cc4eb3dff31f41be2a5ed354d272b47 Mon Sep 17 00:00:00 2001 From: Evgeniya Vashkevich Date: Fri, 17 Jan 2025 15:04:43 -0800 Subject: [PATCH 53/57] Fixed LabeledSelect not emitting search explicitly (#13142) --- shell/components/auth/SelectPrincipal.vue | 2 +- shell/components/form/LabeledSelect.vue | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/shell/components/auth/SelectPrincipal.vue b/shell/components/auth/SelectPrincipal.vue index 941404d28d..cffabaa1b1 100644 --- a/shell/components/auth/SelectPrincipal.vue +++ b/shell/components/auth/SelectPrincipal.vue @@ -127,7 +127,7 @@ export default { } }, - onSearch(str, loading, vm) { + onSearch(str, loading) { str = (str || '').trim(); this.searchStr = str; diff --git a/shell/components/form/LabeledSelect.vue b/shell/components/form/LabeledSelect.vue index 9135df72d3..a0594fe9c3 100644 --- a/shell/components/form/LabeledSelect.vue +++ b/shell/components/form/LabeledSelect.vue @@ -22,7 +22,7 @@ export default { LabeledSelectPagination ], - emits: ['on-open', 'on-close', 'selecting', 'deselecting', 'update:validation', 'update:value'], + emits: ['on-open', 'on-close', 'selecting', 'deselecting', 'search', 'update:validation', 'update:value'], props: { appendToBody: { @@ -238,7 +238,7 @@ export default { return noDrop ? false : open && shouldOpen && !mutableLoading; }, - onSearch(newSearchString) { + onSearch(newSearchString, loading) { if (this.canPaginate) { this.setPaginationFilter(newSearchString); } else { @@ -246,6 +246,7 @@ export default { this.dropdownShouldOpen(this.$refs['select-input'], true); } } + this.$emit('search', newSearchString, loading); }, getOptionKey(opt) { From c0fd9603c6380dae23cbea6804b89e645a48f692 Mon Sep 17 00:00:00 2001 From: Yonas Berhe Date: Tue, 14 Jan 2025 14:00:06 -0800 Subject: [PATCH 54/57] automation: add step to ensure aks is enabled --- .../pages/manager/cluster-manager.spec.ts | 31 ++++++++++++++++++- .../support/commands/rancher-api-commands.ts | 4 +-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/cypress/e2e/tests/pages/manager/cluster-manager.spec.ts b/cypress/e2e/tests/pages/manager/cluster-manager.spec.ts index e68b4adc71..1a678bb191 100644 --- a/cypress/e2e/tests/pages/manager/cluster-manager.spec.ts +++ b/cypress/e2e/tests/pages/manager/cluster-manager.spec.ts @@ -39,6 +39,7 @@ const clusterNamePartial = `${ runPrefix }-create`; const rke1CustomName = `${ clusterNamePartial }-rke1-custom`; const rke2CustomName = `${ clusterNamePartial }-rke2-custom`; const importGenericName = `${ clusterNamePartial }-import-generic`; +let reenableAKS = false; const downloadsFolder = Cypress.config('downloadsFolder'); @@ -91,16 +92,35 @@ describe('Cluster Manager', { testIsolation: 'off', tags: ['@manager', '@adminUs }); it('deactivating a kontainer driver should hide its card from the cluster creation page', () => { + cy.intercept('GET', '/v3/kontainerdrivers').as('getKontainerDrivers'); + cy.intercept('POST', 'v3/kontainerDrivers/azurekubernetesservice?action=deactivate').as('deactivateDriver'); + cy.intercept('POST', 'v3/kontainerDrivers/azurekubernetesservice?action=activate').as('activateDriver'); + const driversPage = new KontainerDriversPagePo(); const clusterCreatePage = new ClusterManagerCreatePagePo(); - // deactivate the AKS driver KontainerDriversPagePo.navTo(); driversPage.waitForPage(); + + // assert AKS kontainer driver is in Active state + cy.wait('@getKontainerDrivers').then(({ response }) => { + response.body.data.forEach((item: any) => { + if (item.id === 'azurekubernetesservice') { + const state = item['active']; + + expect(state).to.eq(true); + } + }); + }); + + // deactivate the AKS driver driversPage.list().actionMenu('Azure AKS').getMenuItem('Deactivate').click(); const deactivateDialog = new DeactivateDriverDialogPo(); deactivateDialog.deactivate(); + cy.wait('@deactivateDriver').its('response.statusCode').should('eq', 200).then(() => { + reenableAKS = true; + }); // verify that the AKS card is not shown clusterList.goTo(); @@ -112,6 +132,9 @@ describe('Cluster Manager', { testIsolation: 'off', tags: ['@manager', '@adminUs KontainerDriversPagePo.navTo(); driversPage.waitForPage(); driversPage.list().actionMenu('Azure AKS').getMenuItem('Activate').click(); + cy.wait('@activateDriver').its('response.statusCode').should('eq', 200).then(() => { + reenableAKS = false; + }); // verify that the AKS card is back clusterList.goTo(); @@ -828,4 +851,10 @@ describe('Cluster Manager', { testIsolation: 'off', tags: ['@manager', '@adminUs }); }); }); + + after(() => { + if (reenableAKS) { + cy.createRancherResource('v3', 'kontainerDrivers/azurekubernetesservice?action=activate', {}); + } + }); }); diff --git a/cypress/support/commands/rancher-api-commands.ts b/cypress/support/commands/rancher-api-commands.ts index 7afc70efa1..601db0080c 100644 --- a/cypress/support/commands/rancher-api-commands.ts +++ b/cypress/support/commands/rancher-api-commands.ts @@ -497,8 +497,8 @@ Cypress.Commands.add('createRancherResource', (prefix, resourceType, body) => { body }) .then((resp) => { - // Expect 201, Created HTTP status code - expect(resp.status).to.eq(201); + // Expect 200 or 201, Created HTTP status code + expect(resp.status).to.be.oneOf([200, 201]); }); }); From 4a5d2bb0561d88677551ba9f175c368a1eed8498 Mon Sep 17 00:00:00 2001 From: Giuseppe Leo Date: Mon, 20 Jan 2025 11:49:33 +0100 Subject: [PATCH 55/57] Allow to skip Cypress dashboard E2E tests using a label or env var (#13146) * Allow to switch Cypress command with cy2 on env var * Remove coverage flag * Restore Cypress dashboard * Assign env var TEST_DISABLE_DASHBOARD_LABEL based on label presence * Extend E2E script condition to TEST_DISABLE_DASHBOARD_LABEL * Correct label term * Remove unnecessary key and ID for Cypress command * Correct PR label * Add echo to display disable method; Add comments * Add documentation * Allow GH to set env var from the config --- .github/workflows/test.yaml | 2 ++ docusaurus/docs/internal/testing/e2e-test.md | 8 ++++++++ package.json | 2 +- scripts/e2e | 19 ++++++++++++++++++- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 646866f407..3cb20fca92 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -22,6 +22,8 @@ env: TEST_BASE_URL: https://127.0.0.1/dashboard API: https://127.0.0.1 TEST_PROJECT_ID: rancher-dashboard + TEST_DISABLE_DASHBOARD: ${{ vars.TEST_DISABLE_DASHBOARD }} # This is required to get it from the project configuration + TEST_DISABLE_DASHBOARD_LABEL: "${{ contains(github.event.pull_request.labels.*.name, 'ci/skip-e2e-cypress-dashboard')}}" CYPRESS_API_URL: http://139.59.134.103:1234/ TEST_RUN_ID: ${{github.run_number}}-${{github.run_attempt}}-${{github.event.pull_request.title || github.event.head_commit.message}} # Build the dashboard to use in tests. When set to false it will grab `latest` from CDN (useful for running e2e tests quickly) diff --git a/docusaurus/docs/internal/testing/e2e-test.md b/docusaurus/docs/internal/testing/e2e-test.md index a265a01b81..77a76055eb 100644 --- a/docusaurus/docs/internal/testing/e2e-test.md +++ b/docusaurus/docs/internal/testing/e2e-test.md @@ -109,6 +109,14 @@ These values are provided when you create a new project within Cypress dashboard It's also possible to run a workflow in GitHub Actions E2E test using these values to record on personal dashboards. +### Skip dashboard or tests + +CI gates can be disabled in the following way: + +- Use label `ci/skip-e2e` to skip the E2E tests in the PR +- Use label `ci/skip-e2e-cypress-dashboard` to run the E2E tests without Sorry Cypress dashboard in the PR (it will enable `TEST_DISABLE_DASHBOARD_LABEL` env var) +- Use GitHub settings and define env var `TEST_DISABLE_DASHBOARD` as `true` (which is string and not boolean) to disable the Cypress dashboard entirely in every CI run + ## Local and CI/prod run It is possible to start the project and run all the tests at once with a single command. There's however a difference between `dev` and `production` run. The first will not require an official certificate and will build the project in `dist`, while the production will enable all the SSL configurations to run encrypted. diff --git a/package.json b/package.json index 894f079e70..87207ac7bd 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "e2e:dev": "START_SERVER_AND_TEST_INSECURE=1 server-test start:dev https-get://localhost:8005 cy:run:sorry", "e2e:build": "mkdir dist && TEST_INSTRUMENT=false ./scripts/build-e2e", "e2e:docker": "yarn docker:local:stop && ./scripts/e2e-docker-start $RANCHER_VERSION_E2E", - "e2e:prod": "BUILD_DASHBOARD=$BUILD_DASHBOARD GREP_TAGS=$GREP_TAGS TEST_USERNAME=$TEST_USERNAME TEST_BASE_URL=https://127.0.0.1/dashboard yarn cy:run", + "e2e:prod": "BUILD_DASHBOARD=$BUILD_DASHBOARD GREP_TAGS=$GREP_TAGS TEST_USERNAME=$TEST_USERNAME TEST_BASE_URL=https://127.0.0.1/dashboard yarn cy:run:sorry", "coverage": "npx nyc merge coverage coverage/coverage.json", "storybook": "cd storybook && yarn storybook", "build-storybook": "cd storybook && yarn install --no-lockfile && NODE_OPTIONS=--max_old_space_size=4096 yarn build-storybook --quiet", diff --git a/scripts/e2e b/scripts/e2e index 96b53ea98d..b788487317 100755 --- a/scripts/e2e +++ b/scripts/e2e @@ -10,4 +10,21 @@ if [ $# -eq 1 ]; then SPEC_ARG="--spec ${1}" fi -CYPRESS_coverage=true CYPRESS_API_URL='http://139.59.134.103:1234' cy2 run ${SPEC_ARG} --group "$GREP_TAGS" --browser chrome --record --key rancher-dashboard --parallel --ci-build-id "$ID" \ No newline at end of file +# Define the command to use (cy2 or cypress) +# TEST_DISABLE_DASHBOARD: Disable Cypress dashboard using GH repository settings +# TEST_DISABLE_DASHBOARD_LABEL: Disable Cypress dashboard using PR label `ci/skip-e2e-cypress-dashboard` +echo "TEST_DISABLE_DASHBOARD: ${TEST_DISABLE_DASHBOARD}" +echo "TEST_DISABLE_DASHBOARD_LABEL: ${TEST_DISABLE_DASHBOARD_LABEL}" +if [ "${TEST_DISABLE_DASHBOARD}" = "true" ] || [ "${TEST_DISABLE_DASHBOARD_LABEL}" = "true" ]; then + echo "Running Cypress without dashboard" + CYPRESS_COMMAND="cypress run ${SPEC_ARG}" +else + echo "Running Cypress with Sorry Cypress on dashboard" + CYPRESS_COMMAND="cy2 run ${SPEC_ARG} --ci-build-id \"$ID\" --record --key rancher-dashboard --parallel --group \"$GREP_TAGS\"" +fi + +# Construct the full command +E2E_COMMAND="CYPRESS_API_URL='http://139.59.134.103:1234' ${CYPRESS_COMMAND} --browser chrome" + +# Execute the command +eval $E2E_COMMAND From ad7be5372df63a94f15681c6ffaa5185799d7c6d Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Mon, 20 Jan 2025 13:52:29 +0100 Subject: [PATCH 56/57] Remove class selector from fleet.cattle.io.test.ts Signed-off-by: Francesco Torchia --- shell/edit/__tests__/fleet.cattle.io.gitrepo.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/edit/__tests__/fleet.cattle.io.gitrepo.test.ts b/shell/edit/__tests__/fleet.cattle.io.gitrepo.test.ts index 96bbee8b87..a035d41d1c 100644 --- a/shell/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +++ b/shell/edit/__tests__/fleet.cattle.io.gitrepo.test.ts @@ -35,18 +35,18 @@ describe('view: fleet.cattle.io.gitrepo should', () => { it('should have self-healing checkbox and tooltip', () => { const correctDriftCheckbox = wrapper.find('[data-testid="GitRepo-correctDrift-checkbox"]'); - const tooltip = wrapper.findAll('[data-testid="GitRepo-correctDrift-checkbox"] .v-popper--has-tooltip'); + const tooltip = wrapper.find('[data-testid="GitRepo-correctDrift-checkbox"]'); - expect(tooltip).toHaveLength(1); + expect(tooltip.element.classList).toContain('v-popper--has-tooltip'); expect(correctDriftCheckbox.exists()).toBeTruthy(); expect(correctDriftCheckbox.attributes().value).toBeFalsy(); }); it('should have keep-resources checkbox and tooltip', () => { const correctDriftCheckbox = wrapper.find('[data-testid="GitRepo-keepResources-checkbox"]'); - const tooltip = wrapper.findAll('[data-testid="GitRepo-keepResources-checkbox"] .v-popper--has-tooltip'); + const tooltip = wrapper.find('[data-testid="GitRepo-keepResources-checkbox"]'); - expect(tooltip).toHaveLength(1); + expect(tooltip.element.classList).toContain('v-popper--has-tooltip'); expect(correctDriftCheckbox.exists()).toBeTruthy(); expect(correctDriftCheckbox.attributes().value).toBeFalsy(); }); From 54e2cbdd413dcb277416ae463007a49f51261526 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Mon, 20 Jan 2025 14:26:35 +0000 Subject: [PATCH 57/57] Fix state is not reset when feature flag API request fails (#13090) --- cypress/e2e/po/components/card.po.ts | 4 ++ .../pages/global-settings/feature-flags.po.ts | 11 ++++++ .../global-settings/feature-flags.spec.ts | 37 +++++++++++++++++++ shell/list/management.cattle.io.feature.vue | 7 +++- 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/cypress/e2e/po/components/card.po.ts b/cypress/e2e/po/components/card.po.ts index 050e545c9b..c456dfd6c3 100644 --- a/cypress/e2e/po/components/card.po.ts +++ b/cypress/e2e/po/components/card.po.ts @@ -14,6 +14,10 @@ export default class CardPo extends ComponentPo { return this.self().get('[data-testid="card-body-slot"]'); } + getError(): CypressChainable { + return this.self().get('[data-testid="card-body-slot"] > .text-error'); + } + getActionButton(): CypressChainable { return this.self().get('[data-testid="card-actions-slot"]'); } diff --git a/cypress/e2e/po/pages/global-settings/feature-flags.po.ts b/cypress/e2e/po/pages/global-settings/feature-flags.po.ts index 9ba6893bdd..d04893e475 100644 --- a/cypress/e2e/po/pages/global-settings/feature-flags.po.ts +++ b/cypress/e2e/po/pages/global-settings/feature-flags.po.ts @@ -54,6 +54,17 @@ export class FeatureFlagsPagePo extends RootClusterPage { return card.getBody().contains(label); } + /** + * Get card body error + * @param error + * @returns + */ + cardActionError(error: string): CypressChainable { + const card = new CardPo(); + + return card.getError().contains(error); + } + /** * Click action button * @param label Activate or Deactivate diff --git a/cypress/e2e/tests/pages/global-settings/feature-flags.spec.ts b/cypress/e2e/tests/pages/global-settings/feature-flags.spec.ts index 4e42709dda..6ff0f77d3a 100644 --- a/cypress/e2e/tests/pages/global-settings/feature-flags.spec.ts +++ b/cypress/e2e/tests/pages/global-settings/feature-flags.spec.ts @@ -191,6 +191,43 @@ describe('Feature Flags', { testIsolation: 'off' }, () => { sideNav.groups().contains('Legacy').should('not.exist'); }); + it('error when toggling a feature flag is handled correctly', { tags: ['@globalSettings', '@adminUser'] }, () => { + // Check Current State: should be disabled by default + FeatureFlagsPagePo.navTo(); + featureFlagsPage.list().details('unsupported-storage-drivers', 0).should('include.text', 'Disabled'); + + // Intercept the request to change the feature flag and return an error - 403, permission denied + cy.intercept({ + method: 'PUT', + pathname: '/v1/management.cattle.io.features/unsupported-storage-drivers', + times: 1, + }, { + statusCode: 403, + body: { + type: 'error', + links: {}, + code: 'Forbidden', + message: 'User does not have permission' + } + }).as('updateFeatureFlag'); + + // Activate + featureFlagsPage.list().elementWithName('unsupported-storage-drivers').scrollIntoView().should('be.visible'); + featureFlagsPage.list().clickRowActionMenuItem('unsupported-storage-drivers', 'Activate'); + featureFlagsPage.cardActionButton('Activate').click(); + + cy.wait(`@updateFeatureFlag`).its('response.statusCode').should('eq', 403); + + // Check Updated State: should be active + featureFlagsPage.list().details('unsupported-storage-drivers', 0).should('include.text', 'Disabled'); + + // Check error message is displayed + featureFlagsPage.cardActionError('User does not have permission'); + + // Press cancel + featureFlagsPage.cardActionButton('Cancel').click(); + }); + it('standard user has only read access to Feature Flag page', { tags: ['@globalSettings', '@standardUser'] }, () => { // verify action menus are hidden for standard user diff --git a/shell/list/management.cattle.io.feature.vue b/shell/list/management.cattle.io.feature.vue index a49d1a8758..ab36928d78 100644 --- a/shell/list/management.cattle.io.feature.vue +++ b/shell/list/management.cattle.io.feature.vue @@ -95,6 +95,9 @@ export default { watch: { showPromptUpdate(show) { if (show) { + // Clear last error + this.error = null; + this.showModal = true; } else { this.showModal = false; @@ -140,7 +143,9 @@ export default { btnCB(true); this.close(); } catch (err) { - this.error = err; + // An error occurred, so toggle back the value - the call failed, so the change was not made + this.update.spec.value = !this.update.enabled; + this.error = err.message || err; btnCB(false); } },