From 79e5c9c431fdee64bc242f830c6b8ffec9827df5 Mon Sep 17 00:00:00 2001
From: Sebastian Malton
Date: Wed, 15 Feb 2023 06:46:22 -0800
Subject: [PATCH 01/37] Add bundled extension versions to 'About Lens' (#7163)
- Only during non-stable versions
Signed-off-by: Sebastian Malton
---
.../about-bundled-extensions.injectable.ts | 23 +++++++++++++++++++
.../show-about.injectable.ts | 3 +++
2 files changed, 26 insertions(+)
create mode 100644 packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts
diff --git a/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts
new file mode 100644
index 0000000000..449ce5f4a8
--- /dev/null
+++ b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/about-bundled-extensions.injectable.ts
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { bundledExtensionInjectionToken } from "../../../../../../common/library";
+import buildSemanticVersionInjectable from "../../../../../../common/vars/build-semantic-version.injectable";
+
+const aboutBundledExtensionsInjectable = getInjectable({
+ id: "about-bundled-extensions",
+ instantiate: (di) => {
+ const buildSemanticVersion = di.inject(buildSemanticVersionInjectable);
+ const bundledExtensions = di.injectMany(bundledExtensionInjectionToken);
+
+ if (buildSemanticVersion.get().prerelease[0] === "latest") {
+ return [];
+ }
+
+ return bundledExtensions.map(ext => `${ext.manifest.name}: ${ext.manifest.version}`);
+ },
+});
+
+export default aboutBundledExtensionsInjectable;
diff --git a/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts
index a91e2af337..8bc78ae8c3 100644
--- a/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts
+++ b/packages/core/src/features/application-menu/main/menu-items/special-menu-for-mac-application/show-about-application/show-about.injectable.ts
@@ -10,6 +10,7 @@ import productNameInjectable from "../../../../../../common/vars/product-name.in
import buildVersionInjectable from "../../../../../../main/vars/build-version/build-version.injectable";
import extensionApiVersionInjectable from "../../../../../../common/vars/extension-api-version.injectable";
import applicationCopyrightInjectable from "../../../../../../common/vars/application-copyright.injectable";
+import aboutBundledExtensionsInjectable from "./about-bundled-extensions.injectable";
const showAboutInjectable = getInjectable({
id: "show-about",
@@ -22,6 +23,7 @@ const showAboutInjectable = getInjectable({
const appName = di.inject(appNameInjectable);
const productName = di.inject(productNameInjectable);
const applicationCopyright = di.inject(applicationCopyrightInjectable);
+ const aboutBundledExtensions = di.inject(aboutBundledExtensionsInjectable);
return () => {
const appInfo = [
@@ -30,6 +32,7 @@ const showAboutInjectable = getInjectable({
`Electron: ${process.versions.electron}`,
`Chrome: ${process.versions.chrome}`,
`Node: ${process.versions.node}`,
+ ...aboutBundledExtensions,
applicationCopyright,
];
From 78df199a7fb0c50ce3e623a60ac1d9c74202380a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 15 Feb 2023 12:19:00 -0500
Subject: [PATCH 02/37] Bump sass from 1.58.0 to 1.58.1 (#7158)
Bumps [sass](https://github.com/sass/dart-sass) from 1.58.0 to 1.58.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.58.0...1.58.1)
---
updated-dependencies:
- dependency-name: sass
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
packages/core/package.json | 2 +-
packages/core/yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/packages/core/package.json b/packages/core/package.json
index 94ef65127c..03cb7ff714 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -310,7 +310,7 @@
"react-table": "^7.8.0",
"react-window": "^1.8.8",
"rimraf": "^4.1.2",
- "sass": "^1.58.0",
+ "sass": "^1.58.1",
"sass-loader": "^12.6.0",
"style-loader": "^3.3.1",
"tailwindcss": "^3.2.4",
diff --git a/packages/core/yarn.lock b/packages/core/yarn.lock
index 6a746eae43..38f7012dc4 100644
--- a/packages/core/yarn.lock
+++ b/packages/core/yarn.lock
@@ -10913,10 +10913,10 @@ sass-loader@^12.6.0:
klona "^2.0.4"
neo-async "^2.6.2"
-sass@^1.32.13, sass@^1.58.0:
- version "1.58.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.0.tgz#ee8aea3ad5ea5c485c26b3096e2df6087d0bb1cc"
- integrity sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==
+sass@^1.32.13, sass@^1.58.1:
+ version "1.58.1"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.1.tgz#17ab0390076a50578ed0733f1cc45429e03405f6"
+ integrity sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
From de6f339fec26b69cf38935270220da9d504b248f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 15 Feb 2023 12:19:11 -0500
Subject: [PATCH 03/37] Bump esbuild from 0.17.7 to 0.17.8 (#7159)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.7 to 0.17.8.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.17.7...v0.17.8)
---
updated-dependencies:
- dependency-name: esbuild
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
packages/core/package.json | 2 +-
packages/core/yarn.lock | 228 ++++++++++++++++++-------------------
2 files changed, 115 insertions(+), 115 deletions(-)
diff --git a/packages/core/package.json b/packages/core/package.json
index 03cb7ff714..6c952adc4c 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -269,7 +269,7 @@
"electron": "^19.1.9",
"electron-builder": "^23.6.0",
"electron-notarize": "^0.3.0",
- "esbuild": "^0.17.7",
+ "esbuild": "^0.17.8",
"esbuild-loader": "^2.21.0",
"eslint": "^8.33.0",
"eslint-import-resolver-typescript": "^3.5.3",
diff --git a/packages/core/yarn.lock b/packages/core/yarn.lock
index 38f7012dc4..fa5cdf3baa 100644
--- a/packages/core/yarn.lock
+++ b/packages/core/yarn.lock
@@ -587,220 +587,220 @@
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23"
integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==
-"@esbuild/android-arm64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.7.tgz#7d22b442815624423de5541545401e12a8d474d8"
- integrity sha512-fOUBZvcbtbQJIj2K/LMKcjULGfXLV9R4qjXFsi3UuqFhIRJHz0Fp6kFjsMFI6vLuPrfC5G9Dmh+3RZOrSKY2Lg==
+"@esbuild/android-arm64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz#b3d5b65a3b2e073a6c7ee36b1f3c30c8f000315b"
+ integrity sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==
"@esbuild/android-arm@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2"
integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==
-"@esbuild/android-arm@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.7.tgz#fa30de0cfae8e8416c693dc449c415765542483b"
- integrity sha512-Np6Lg8VUiuzHP5XvHU7zfSVPN4ILdiOhxA1GQ1uvCK2T2l3nI8igQV0c9FJx4hTkq8WGqhGEvn5UuRH8jMkExg==
+"@esbuild/android-arm@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.8.tgz#c41e496af541e175369d48164d0cf01a5f656cf6"
+ integrity sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==
"@esbuild/android-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e"
integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==
-"@esbuild/android-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.7.tgz#34a1af914510ec821246859f8ae7d8fe843dd37b"
- integrity sha512-6YILpPvop1rPAvaO/n2iWQL45RyTVTR/1SK7P6Xi2fyu+hpEeX22fE2U2oJd1sfpovUJOWTRdugjddX6QCup3A==
+"@esbuild/android-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.8.tgz#080fa67c29be77f5a3ca5ee4cc78d5bf927e3a3b"
+ integrity sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==
"@esbuild/darwin-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220"
integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==
-"@esbuild/darwin-arm64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.7.tgz#06712059a30a6130eef701fb634883a4aaea02f7"
- integrity sha512-7i0gfFsDt1BBiurZz5oZIpzfxqy5QkJmhXdtrf2Hma/gI9vL2AqxHhRBoI1NeWc9IhN1qOzWZrslhiXZweMSFg==
+"@esbuild/darwin-arm64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz#053622bf9a82f43d5c075b7818e02618f7b4a397"
+ integrity sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==
"@esbuild/darwin-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4"
integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==
-"@esbuild/darwin-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.7.tgz#58cd69d00d5b9847ad2015858a7ec3f10bf309ad"
- integrity sha512-hRvIu3vuVIcv4SJXEKOHVsNssM5tLE2xWdb9ZyJqsgYp+onRa5El3VJ4+WjTbkf/A2FD5wuMIbO2FCTV39LE0w==
+"@esbuild/darwin-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz#8a1aadb358d537d8efad817bb1a5bff91b84734b"
+ integrity sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==
"@esbuild/freebsd-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27"
integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==
-"@esbuild/freebsd-arm64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.7.tgz#1dd3de24a9683c8321a4e3c42b11b32a48e791d4"
- integrity sha512-2NJjeQ9kiabJkVXLM3sHkySqkL1KY8BeyLams3ITyiLW10IwDL0msU5Lq1cULCn9zNxt1Seh1I6QrqyHUvOtQw==
+"@esbuild/freebsd-arm64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz#e6738d0081ba0721a5c6c674e84c6e7fcea61989"
+ integrity sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==
"@esbuild/freebsd-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72"
integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==
-"@esbuild/freebsd-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.7.tgz#b0e409e1c7cc05412c8dd149c2c39e0a1dee9567"
- integrity sha512-8kSxlbjuLYMoIgvRxPybirHJeW45dflyIgHVs+jzMYJf87QOay1ZUTzKjNL3vqHQjmkSn8p6KDfHVrztn7Rprw==
+"@esbuild/freebsd-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz#1855e562f2b730f4483f6e94086e9e2597feb4c3"
+ integrity sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==
"@esbuild/linux-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca"
integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==
-"@esbuild/linux-arm64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.7.tgz#35cfae28e460b96ccc027eccc28b13c0712d6df3"
- integrity sha512-43Bbhq3Ia/mGFTCRA4NlY8VRH3dLQltJ4cqzhSfq+cdvdm9nKJXVh4NUkJvdZgEZIkf/ufeMmJ0/22v9btXTcw==
+"@esbuild/linux-arm64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz#481da38952721a3fdb77c17a36ceaacc4270b5c5"
+ integrity sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==
"@esbuild/linux-arm@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196"
integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==
-"@esbuild/linux-arm@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.7.tgz#a378301c253ef64d19a112c9ec922680c2fb5a71"
- integrity sha512-07RsAAzznWqdfJC+h3L2UVWwnUHepsFw5GmzySnUspHHb7glJ1+47rvlcH0SeUtoVOs8hF4/THgZbtJRyALaJA==
+"@esbuild/linux-arm@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz#18127072b270bb6321c6d11be20bfd30e0d6ad17"
+ integrity sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==
"@esbuild/linux-ia32@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54"
integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==
-"@esbuild/linux-ia32@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.7.tgz#7d36087db95b1faaee8df203c511775a4d322a2b"
- integrity sha512-ViYkfcfnbwOoTS7xE4DvYFv7QOlW8kPBuccc4erJ0jx2mXDPR7e0lYOH9JelotS9qe8uJ0s2i3UjUvjunEp53A==
+"@esbuild/linux-ia32@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz#ee400af7b3bc69e8ca2e593ca35156ffb9abd54f"
+ integrity sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==
"@esbuild/linux-loong64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8"
integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==
-"@esbuild/linux-loong64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.7.tgz#b989253520308d81ee0e4846de9f63f2f11c7f10"
- integrity sha512-H1g+AwwcqYQ/Hl/sMcopRcNLY/fysIb/ksDfCa3/kOaHQNhBrLeDYw+88VAFV5U6oJL9GqnmUj72m9Nv3th3hA==
+"@esbuild/linux-loong64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz#8c509d8a454693d39824b83b3f66c400872fce82"
+ integrity sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==
"@esbuild/linux-mips64el@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726"
integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==
-"@esbuild/linux-mips64el@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.7.tgz#ae751365cdf967dfa89dd59cdb0dcc8723a66f9a"
- integrity sha512-MDLGrVbTGYtmldlbcxfeDPdhxttUmWoX3ovk9u6jc8iM+ueBAFlaXKuUMCoyP/zfOJb+KElB61eSdBPSvNcCEg==
+"@esbuild/linux-mips64el@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz#f2b0d36e63fb26bc3f95b203b6a80638292101ca"
+ integrity sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==
"@esbuild/linux-ppc64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8"
integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==
-"@esbuild/linux-ppc64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.7.tgz#ad1c9299c463f0409e57166e76e91afb6193ea9f"
- integrity sha512-UWtLhRPKzI+v2bKk4j9rBpGyXbLAXLCOeqt1tLVAt1mfagHpFjUzzIHCpPiUfY3x1xY5e45/+BWzGpqqvSglNw==
+"@esbuild/linux-ppc64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz#1e628be003e036e90423716028cc884fe5ba25bd"
+ integrity sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==
"@esbuild/linux-riscv64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9"
integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==
-"@esbuild/linux-riscv64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.7.tgz#84acb7451bef7458e6067d9c358026ffa1831910"
- integrity sha512-3C/RTKqZauUwBYtIQAv7ELTJd+H2dNKPyzwE2ZTbz2RNrNhNHRoeKnG5C++eM6nSZWUCLyyaWfq1v1YRwBS/+A==
+"@esbuild/linux-riscv64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz#419a815cb4c3fb9f1b78ef5295f5b48b8bf6427a"
+ integrity sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==
"@esbuild/linux-s390x@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87"
integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==
-"@esbuild/linux-s390x@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.7.tgz#0bf23c78c52ea60ae4ea95239b728683a86a7ab8"
- integrity sha512-x7cuRSCm998KFZqGEtSo8rI5hXLxWji4znZkBhg2FPF8A8lxLLCsSXe2P5utf0RBQflb3K97dkEH/BJwTqrbDw==
+"@esbuild/linux-s390x@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz#291c49ae5c3d11d226352755c0835911fe1a9e5c"
+ integrity sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==
"@esbuild/linux-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f"
integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==
-"@esbuild/linux-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.7.tgz#932d8c6e1b0d6a57a4e94a8390dfebeebba21dcc"
- integrity sha512-1Z2BtWgM0Wc92WWiZR5kZ5eC+IetI++X+nf9NMbUvVymt74fnQqwgM5btlTW7P5uCHfq03u5MWHjIZa4o+TnXQ==
+"@esbuild/linux-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz#03199d91c76faf80bd54104f5cbf0a489bc39f6a"
+ integrity sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==
"@esbuild/netbsd-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775"
integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==
-"@esbuild/netbsd-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.7.tgz#6aa81873c6e08aa419378e07c8d3eed5aa77bf25"
- integrity sha512-//VShPN4hgbmkDjYNCZermIhj8ORqoPNmAnwSPqPtBB0xOpHrXMlJhsqLNsgoBm0zi/5tmy//WyL6g81Uq2c6Q==
+"@esbuild/netbsd-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz#b436d767e1b21852f9ed212e2bb57f77203b0ae2"
+ integrity sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==
"@esbuild/openbsd-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35"
integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==
-"@esbuild/openbsd-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.7.tgz#0698f260250a7022e2cae7385cbd09a86eb0967c"
- integrity sha512-IQ8BliXHiOsbQEOHzc7mVLIw2UYPpbOXJQ9cK1nClNYQjZthvfiA6rWZMz4BZpVzHZJ+/H2H23cZwRJ1NPYOGg==
+"@esbuild/openbsd-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz#d1481d8539e21d4729cd04a0450a26c2c8789e89"
+ integrity sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==
"@esbuild/sunos-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c"
integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==
-"@esbuild/sunos-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.7.tgz#ef97445672deec50e3b3549af2ee6d42fbc04250"
- integrity sha512-phO5HvU3SyURmcW6dfQXX4UEkFREUwaoiTgi1xH+CAFKPGsrcG6oDp1U70yQf5lxRKujoSCEIoBr0uFykJzN2g==
+"@esbuild/sunos-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz#2cfb8126e079b2c00fd1bf095541e9f5c47877e4"
+ integrity sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==
"@esbuild/win32-arm64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a"
integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==
-"@esbuild/win32-arm64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.7.tgz#70865d2332d7883e2e49077770adfe51c51343e3"
- integrity sha512-G/cRKlYrwp1B0uvzEdnFPJ3A6zSWjnsRrWivsEW0IEHZk+czv0Bmiwa51RncruHLjQ4fGsvlYPmCmwzmutPzHA==
+"@esbuild/win32-arm64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz#7c6ecfd097ca23b82119753bf7072bbaefe51e3a"
+ integrity sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==
"@esbuild/win32-ia32@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09"
integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==
-"@esbuild/win32-ia32@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.7.tgz#39831b787013c7da7e61c8eb6a9df0fed9bd0fcb"
- integrity sha512-/yMNVlMew07NrOflJdRAZcMdUoYTOCPbCHx0eHtg55l87wXeuhvYOPBQy5HLX31Ku+W2XsBD5HnjUjEUsTXJug==
+"@esbuild/win32-ia32@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz#cffec63c3cb0ef8563a04df4e09fa71056171d00"
+ integrity sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==
"@esbuild/win32-x64@0.16.17":
version "0.16.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091"
integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==
-"@esbuild/win32-x64@0.17.7":
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.7.tgz#03b231fcfa0702562978979468dfc8b09b55ac59"
- integrity sha512-K9/YybM6WZO71x73Iyab6mwieHtHjm9hrPR/a9FBPZmFO3w+fJaM2uu2rt3JYf/rZR24MFwTliI8VSoKKOtYtg==
+"@esbuild/win32-x64@0.17.8":
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz#200a0965cf654ac28b971358ecdca9cc5b44c335"
+ integrity sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==
"@eslint/eslintrc@^1.4.1":
version "1.4.1"
@@ -5358,33 +5358,33 @@ esbuild@^0.16.17:
"@esbuild/win32-ia32" "0.16.17"
"@esbuild/win32-x64" "0.16.17"
-esbuild@^0.17.7:
- version "0.17.7"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.7.tgz#a7ace55f2bf82fdb1c9013a924620ce2596984fa"
- integrity sha512-+5hHlrK108fT6C6/40juy0w4DYKtyZ5NjfBlTccBdsFutR7WBxpIY633JzZJewdsCy8xWA/u2z0MSniIJwufYg==
+esbuild@^0.17.8:
+ version "0.17.8"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.8.tgz#f7f799abc7cdce3f0f2e3e0c01f120d4d55193b4"
+ integrity sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==
optionalDependencies:
- "@esbuild/android-arm" "0.17.7"
- "@esbuild/android-arm64" "0.17.7"
- "@esbuild/android-x64" "0.17.7"
- "@esbuild/darwin-arm64" "0.17.7"
- "@esbuild/darwin-x64" "0.17.7"
- "@esbuild/freebsd-arm64" "0.17.7"
- "@esbuild/freebsd-x64" "0.17.7"
- "@esbuild/linux-arm" "0.17.7"
- "@esbuild/linux-arm64" "0.17.7"
- "@esbuild/linux-ia32" "0.17.7"
- "@esbuild/linux-loong64" "0.17.7"
- "@esbuild/linux-mips64el" "0.17.7"
- "@esbuild/linux-ppc64" "0.17.7"
- "@esbuild/linux-riscv64" "0.17.7"
- "@esbuild/linux-s390x" "0.17.7"
- "@esbuild/linux-x64" "0.17.7"
- "@esbuild/netbsd-x64" "0.17.7"
- "@esbuild/openbsd-x64" "0.17.7"
- "@esbuild/sunos-x64" "0.17.7"
- "@esbuild/win32-arm64" "0.17.7"
- "@esbuild/win32-ia32" "0.17.7"
- "@esbuild/win32-x64" "0.17.7"
+ "@esbuild/android-arm" "0.17.8"
+ "@esbuild/android-arm64" "0.17.8"
+ "@esbuild/android-x64" "0.17.8"
+ "@esbuild/darwin-arm64" "0.17.8"
+ "@esbuild/darwin-x64" "0.17.8"
+ "@esbuild/freebsd-arm64" "0.17.8"
+ "@esbuild/freebsd-x64" "0.17.8"
+ "@esbuild/linux-arm" "0.17.8"
+ "@esbuild/linux-arm64" "0.17.8"
+ "@esbuild/linux-ia32" "0.17.8"
+ "@esbuild/linux-loong64" "0.17.8"
+ "@esbuild/linux-mips64el" "0.17.8"
+ "@esbuild/linux-ppc64" "0.17.8"
+ "@esbuild/linux-riscv64" "0.17.8"
+ "@esbuild/linux-s390x" "0.17.8"
+ "@esbuild/linux-x64" "0.17.8"
+ "@esbuild/netbsd-x64" "0.17.8"
+ "@esbuild/openbsd-x64" "0.17.8"
+ "@esbuild/sunos-x64" "0.17.8"
+ "@esbuild/win32-arm64" "0.17.8"
+ "@esbuild/win32-ia32" "0.17.8"
+ "@esbuild/win32-x64" "0.17.8"
escalade@^3.1.1:
version "3.1.1"
From 54e874f646896c9f22a278cf8d0f58d267fdbbb2 Mon Sep 17 00:00:00 2001
From: Roman
Date: Thu, 16 Feb 2023 14:48:24 +0200
Subject: [PATCH 04/37] Replication Controllers (new resource view) (#7154)
* New resource view: ReplicationController -- scaffolding files
Signed-off-by: Roman
* fix: inappropriate names after copy-pasting
Signed-off-by: Roman
* update replication controller api types/spec, fix menu title
Signed-off-by: Roman
* items list + details list views (added contents from replication controllers), lint fixes
Signed-off-by: Roman
* allow to scale replication controllers
Signed-off-by: Roman
* switched for scaling replicas with `Slider` component instead of `Buttons+Input`
Signed-off-by: Roman
---------
Signed-off-by: Roman
---
...e-to-replication-controllers.injectable.ts | 20 +++
...replicationcontrollers-route.injectable.ts | 24 +++
.../src/common/k8s-api/endpoints/index.ts | 1 +
.../replication-controller.api.injectable.ts | 23 +++
.../endpoints/replication-controller.api.ts | 149 ++++++++++++++++++
packages/core/src/common/rbac.ts | 7 +-
.../index.ts | 7 +
...-controllers-route-component.injectable.ts | 24 +++
.../replicationcontroller-details.module.scss | 16 ++
.../replicationcontroller-details.tsx | 122 ++++++++++++++
...ioncontroller-sidebar-items.injectable.tsx | 39 +++++
.../replicationcontroller-store.injectable.ts | 26 +++
.../replicationcontroller-store.ts | 23 +++
.../replicationcontrollers.module.scss | 8 +
.../replicationcontrollers.tsx | 86 ++++++++++
...ation-controller-detail-item.injectable.ts | 35 ++++
packages/core/src/renderer/utils/rbac.ts | 1 +
17 files changed, 610 insertions(+), 1 deletion(-)
create mode 100644 packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/navigate-to-replication-controllers.injectable.ts
create mode 100644 packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/replicationcontrollers-route.injectable.ts
create mode 100644 packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts
create mode 100644 packages/core/src/common/k8s-api/endpoints/replication-controller.api.ts
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/index.ts
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replication-controllers-route-component.injectable.ts
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.module.scss
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.tsx
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-sidebar-items.injectable.tsx
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.injectable.ts
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.ts
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.module.scss
create mode 100644 packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.tsx
create mode 100644 packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts
diff --git a/packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/navigate-to-replication-controllers.injectable.ts b/packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/navigate-to-replication-controllers.injectable.ts
new file mode 100644
index 0000000000..240ad0f37e
--- /dev/null
+++ b/packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/navigate-to-replication-controllers.injectable.ts
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import replicationControllersRouteInjectable from "./replicationcontrollers-route.injectable";
+import { navigateToRouteInjectionToken } from "../../../../navigate-to-route-injection-token";
+
+const navigateToReplicationControllersInjectable = getInjectable({
+ id: "navigate-to-replicationcontrollers",
+
+ instantiate: (di) => {
+ const navigateToRoute = di.inject(navigateToRouteInjectionToken);
+ const route = di.inject(replicationControllersRouteInjectable);
+
+ return () => navigateToRoute(route);
+ },
+});
+
+export default navigateToReplicationControllersInjectable;
diff --git a/packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/replicationcontrollers-route.injectable.ts b/packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/replicationcontrollers-route.injectable.ts
new file mode 100644
index 0000000000..77d87abc96
--- /dev/null
+++ b/packages/core/src/common/front-end-routing/routes/cluster/workloads/replicationcontrollers/replicationcontrollers-route.injectable.ts
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { shouldShowResourceInjectionToken } from "../../../../../cluster-store/allowed-resources-injection-token";
+import { frontEndRouteInjectionToken } from "../../../../front-end-route-injection-token";
+
+const replicationControllersRouteInjectable = getInjectable({
+ id: "replicationcontrollers-route",
+
+ instantiate: (di) => ({
+ path: "/replicationcontrollers",
+ clusterFrame: true,
+ isEnabled: di.inject(shouldShowResourceInjectionToken, {
+ apiName: "replicationcontrollers",
+ group: "", // core
+ }),
+ }),
+
+ injectionToken: frontEndRouteInjectionToken,
+});
+
+export default replicationControllersRouteInjectable;
diff --git a/packages/core/src/common/k8s-api/endpoints/index.ts b/packages/core/src/common/k8s-api/endpoints/index.ts
index 0314c6b282..8fb6cbdabd 100644
--- a/packages/core/src/common/k8s-api/endpoints/index.ts
+++ b/packages/core/src/common/k8s-api/endpoints/index.ts
@@ -33,6 +33,7 @@ export * from "./pod-metrics.api";
export * from "./pod-security-policy.api";
export * from "./priority-class.api";
export * from "./replica-set.api";
+export * from "./replication-controller.api";
export * from "./resource-quota.api";
export * from "./role.api";
export * from "./role-binding.api";
diff --git a/packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts
new file mode 100644
index 0000000000..6d65f446b5
--- /dev/null
+++ b/packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { kubeApiInjectionToken } from "../kube-api/kube-api-injection-token";
+import loggerInjectable from "../../logger.injectable";
+import maybeKubeApiInjectable from "../maybe-kube-api.injectable";
+import { ReplicationControllerApi } from "./replication-controller.api";
+
+const replicationControllerApiInjectable = getInjectable({
+ id: "replication-controller-api",
+ instantiate: (di) => {
+ return new ReplicationControllerApi({
+ logger: di.inject(loggerInjectable),
+ maybeKubeApi: di.inject(maybeKubeApiInjectable),
+ });
+ },
+
+ injectionToken: kubeApiInjectionToken,
+});
+
+export default replicationControllerApiInjectable;
diff --git a/packages/core/src/common/k8s-api/endpoints/replication-controller.api.ts b/packages/core/src/common/k8s-api/endpoints/replication-controller.api.ts
new file mode 100644
index 0000000000..b87b7a81a8
--- /dev/null
+++ b/packages/core/src/common/k8s-api/endpoints/replication-controller.api.ts
@@ -0,0 +1,149 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+import type { DerivedKubeApiOptions, KubeApiDependencies } from "../kube-api";
+import { KubeApi } from "../kube-api";
+import type {
+ BaseKubeObjectCondition, KubeObjectMetadata,
+ KubeObjectStatus,
+ NamespaceScopedMetadata,
+} from "../kube-object";
+import { KubeObject } from "../kube-object";
+import type { PodTemplateSpec } from "./types";
+
+export class ReplicationControllerApi extends KubeApi {
+ constructor(deps: KubeApiDependencies, opts?: DerivedKubeApiOptions) {
+ super(deps, {
+ ...opts ?? {},
+ objectConstructor: ReplicationController,
+ });
+ }
+
+ protected getScaleApiUrl(params: { namespace: string; name: string }) {
+ return `${this.formatUrlForNotListing(params)}/scale`;
+ }
+
+ getScale(params: { namespace: string; name: string }): Promise {
+ return this.request.get(this.getScaleApiUrl(params));
+ }
+
+ scale(params: { namespace: string; name: string }, replicas: number): Promise {
+ return this.request.patch(this.getScaleApiUrl(params), {
+ data: {
+ metadata: params,
+ spec: {
+ replicas,
+ },
+ },
+ }, {
+ headers: {
+ "content-type": "application/strategic-merge-patch+json",
+ },
+ });
+ }
+}
+
+export interface Scale {
+ apiVersion: "autoscaling/v1";
+ kind: "Scale";
+ metadata: KubeObjectMetadata;
+ spec: {
+ replicas: number;
+ };
+ status: {
+ replicas: number;
+ selector: string;
+ };
+}
+
+export interface ReplicationControllerSpec {
+ /**
+ * Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available.
+ * Defaults to 0 (pod will be considered available as soon as it is ready)
+ */
+ minReadySeconds?: number;
+ /**
+ * Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified.
+ * Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
+ */
+ replicas?: number;
+ /**
+ * Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template.
+ * Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template.
+ * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
+ */
+ selector?: Record;
+ /**
+ * Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef.
+ * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
+ */
+ template: PodTemplateSpec;
+}
+
+export interface ReplicationControllerStatus extends KubeObjectStatus {
+ /**
+ * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
+ */
+ availableReplicas: number;
+ /**
+ * The number of pods that have labels matching the labels of the pod template of the replication controller.
+ */
+ fullyLabeledReplicas: number;
+ /**
+ * ObservedGeneration reflects the generation of the most recently observed replication controller.
+ */
+ observedGeneration: number;
+ /**
+ * The number of ready replicas for this replication controller.
+ */
+ readyReplicas: number;
+ /**
+ * Replicas is the most recently observed number of replicas.
+ * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
+ */
+ replicas: number;
+}
+
+export class ReplicationController extends KubeObject<
+ NamespaceScopedMetadata,
+ ReplicationControllerStatus,
+ ReplicationControllerSpec
+> {
+ static kind = "ReplicationController";
+ static namespaced = true;
+ static apiBase = "/api/v1/replicationcontrollers";
+
+ getMinReadySeconds(): number {
+ return this.spec?.minReadySeconds ?? 0;
+ }
+
+ getGeneration() {
+ return this.status?.observedGeneration;
+ }
+
+ getSelectorLabels(): string[] {
+ return KubeObject.stringifyLabels(this.spec.selector);
+ }
+
+ getReplicas(): number | undefined {
+ return this.status?.replicas;
+ }
+
+ getDesiredReplicas(): number {
+ return this.spec?.replicas ?? 0;
+ }
+
+ getAvailableReplicas(): number | undefined {
+ return this.status?.availableReplicas;
+ }
+
+ getLabeledReplicas(): number | undefined {
+ return this.status?.fullyLabeledReplicas;
+ }
+
+ getConditions(): BaseKubeObjectCondition[] {
+ return this.status?.conditions ?? [];
+ }
+}
diff --git a/packages/core/src/common/rbac.ts b/packages/core/src/common/rbac.ts
index e2ccad3806..03b4fd1de9 100644
--- a/packages/core/src/common/rbac.ts
+++ b/packages/core/src/common/rbac.ts
@@ -6,7 +6,7 @@
export type KubeResource =
"namespaces" | "nodes" | "events" | "resourcequotas" | "services" | "limitranges" | "leases" |
"secrets" | "configmaps" | "ingresses" | "ingressclasses" | "networkpolicies" | "persistentvolumeclaims" | "persistentvolumes" | "storageclasses" |
- "pods" | "daemonsets" | "deployments" | "statefulsets" | "replicasets" | "jobs" | "cronjobs" |
+ "pods" | "daemonsets" | "deployments" | "statefulsets" | "replicasets" | "replicationcontrollers" | "jobs" | "cronjobs" |
"endpoints" | "customresourcedefinitions" | "horizontalpodautoscalers" | "verticalpodautoscalers" | "podsecuritypolicies" | "poddisruptionbudgets" |
"priorityclasses" | "runtimeclasses" |
"roles" | "clusterroles" | "rolebindings" | "clusterrolebindings" | "serviceaccounts";
@@ -171,6 +171,11 @@ export const apiResourceRecord: Record = {
group: "apps",
namespaced: true,
},
+ replicationcontrollers: {
+ kind: "ReplicationController",
+ group: "", // core
+ namespaced: true,
+ },
roles: {
kind: "Role",
group: "rbac.authorization.k8s.io",
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/index.ts b/packages/core/src/renderer/components/+workloads-replicationcontrollers/index.ts
new file mode 100644
index 0000000000..5f9390ae2f
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/index.ts
@@ -0,0 +1,7 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+export * from "./replicationcontrollers";
+export * from "./replicationcontroller-details";
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replication-controllers-route-component.injectable.ts b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replication-controllers-route-component.injectable.ts
new file mode 100644
index 0000000000..9049b69076
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replication-controllers-route-component.injectable.ts
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { ReplicationControllers } from "./replicationcontrollers";
+import {
+ routeSpecificComponentInjectionToken,
+} from "../../routes/route-specific-component-injection-token";
+import replicationControllersRouteInjectable
+ from "../../../common/front-end-routing/routes/cluster/workloads/replicationcontrollers/replicationcontrollers-route.injectable";
+
+const replicationControllersRouteComponentInjectable = getInjectable({
+ id: "replicationcontroller-route-component",
+
+ instantiate: (di) => ({
+ route: di.inject(replicationControllersRouteInjectable),
+ Component: ReplicationControllers,
+ }),
+
+ injectionToken: routeSpecificComponentInjectionToken,
+});
+
+export default replicationControllersRouteComponentInjectable;
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.module.scss b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.module.scss
new file mode 100644
index 0000000000..eb1d11143a
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.module.scss
@@ -0,0 +1,16 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+.ReplicationControllerDetails {
+ .replicas {
+ display: flex;
+ gap: calc(var(--margin) * 2);
+ align-items: center;
+
+ > * {
+ flex-shrink: 0;
+ }
+ }
+}
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.tsx b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.tsx
new file mode 100644
index 0000000000..44032e53ff
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-details.tsx
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+import styles from "./replicationcontroller-details.module.scss";
+import React from "react";
+import { action, makeObservable, observable } from "mobx";
+import { observer } from "mobx-react";
+import { withInjectables } from "@ogre-tools/injectable-react";
+import { DrawerItem, DrawerTitle } from "../drawer";
+import { Badge } from "../badge";
+import type { KubeObjectDetailsProps } from "../kube-object-details";
+import type {
+ ReplicationController,
+ ReplicationControllerApi,
+} from "../../../common/k8s-api/endpoints";
+import replicationControllerApiInjectable
+ from "../../../common/k8s-api/endpoints/replication-controller.api.injectable";
+import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable";
+import type { ShowNotification } from "../notifications";
+import { Slider } from "../slider";
+
+export interface ReplicationControllerDetailsProps extends KubeObjectDetailsProps {
+}
+
+interface Dependencies {
+ api: ReplicationControllerApi;
+ showNotificationError: ShowNotification;
+}
+
+@observer
+class NonInjectedReplicationControllerDetails extends React.Component {
+ @observable sliderReplicasValue = this.props.object.getDesiredReplicas();
+ @observable sliderReplicasDisabled = false;
+
+ constructor(props: Props) {
+ super(props);
+ makeObservable(this);
+ }
+
+ @action
+ async scale(replicas: number) {
+ const { object: resource, api, showNotificationError } = this.props;
+
+ try {
+ await api.scale({
+ name: resource.getName(),
+ namespace: resource.getNs(),
+ }, replicas);
+ } catch (error) {
+ this.sliderReplicasValue = resource.getDesiredReplicas(); // rollback to last valid value
+ showNotificationError(error as Error);
+ }
+ }
+
+ @action
+ async onScaleSliderChangeCommitted(evt: React.FormEvent, replicas: number) {
+ this.sliderReplicasDisabled = true;
+ await this.scale(replicas);
+ this.sliderReplicasDisabled = false;
+ }
+
+ render() {
+ const { object: resource } = this.props;
+
+ return (
+
+
+ Spec
+
+
+
+
{resource.getDesiredReplicas()}
+
Scale
+
this.sliderReplicasValue = value}
+ onChangeCommitted={(event, value) => this.onScaleSliderChangeCommitted(event, value as number)}
+ />
+
+
+
+ {
+ resource.getSelectorLabels().map(label => ())
+ }
+
+
+
+ Status
+
+
+ {resource.getReplicas()}
+
+
+ {resource.getAvailableReplicas()}
+
+
+ {resource.getLabeledReplicas()}
+
+
+ {resource.getGeneration()}
+
+
+ {`${resource.getMinReadySeconds()} seconds`}
+
+
+ );
+ }
+}
+
+export const ReplicationControllerDetails = withInjectables(NonInjectedReplicationControllerDetails, {
+ getProps: (di, props) => ({
+ ...props,
+ api: di.inject(replicationControllerApiInjectable),
+ showNotificationError: di.inject(showErrorNotificationInjectable),
+ }),
+});
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-sidebar-items.injectable.tsx b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-sidebar-items.injectable.tsx
new file mode 100644
index 0000000000..670db2fd16
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-sidebar-items.injectable.tsx
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { computed } from "mobx";
+import { workloadsSidebarItemId } from "../+workloads/workloads-sidebar-items.injectable";
+import { sidebarItemsInjectionToken } from "../layout/sidebar-items.injectable";
+import routeIsActiveInjectable from "../../routes/route-is-active.injectable";
+import replicationControllersRouteInjectable
+ from "../../../common/front-end-routing/routes/cluster/workloads/replicationcontrollers/replicationcontrollers-route.injectable";
+import navigateToReplicationControllersInjectable
+ from "../../../common/front-end-routing/routes/cluster/workloads/replicationcontrollers/navigate-to-replication-controllers.injectable";
+
+const replicationControllerSidebarItemsInjectable = getInjectable({
+ id: "replicationctrl-sidebar-items",
+
+ instantiate: (di) => {
+ const route = di.inject(replicationControllersRouteInjectable);
+ const navigateToPage = di.inject(navigateToReplicationControllersInjectable);
+ const routeIsActive = di.inject(routeIsActiveInjectable, route);
+
+ return computed(() => [
+ {
+ id: "replication-controllers",
+ parentId: workloadsSidebarItemId,
+ title: "Replication Controllers",
+ onClick: navigateToPage,
+ isActive: routeIsActive,
+ isVisible: route.isEnabled,
+ orderNumber: 61,
+ },
+ ]);
+ },
+
+ injectionToken: sidebarItemsInjectionToken,
+});
+
+export default replicationControllerSidebarItemsInjectable;
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.injectable.ts b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.injectable.ts
new file mode 100644
index 0000000000..5749acf915
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.injectable.ts
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token";
+import { ReplicationControllerStore } from "./replicationcontroller-store";
+import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable";
+import loggerInjectable from "../../../common/logger.injectable";
+import replicationControllerApiInjectable
+ from "../../../common/k8s-api/endpoints/replication-controller.api.injectable";
+
+const replicationControllerStoreInjectable = getInjectable({
+ id: "replication-controller-store",
+ instantiate: (di) => {
+ const api = di.inject(replicationControllerApiInjectable);
+
+ return new ReplicationControllerStore({
+ context: di.inject(clusterFrameContextForNamespacedResourcesInjectable),
+ logger: di.inject(loggerInjectable),
+ }, api);
+ },
+ injectionToken: kubeObjectStoreInjectionToken,
+});
+
+export default replicationControllerStoreInjectable;
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.ts b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.ts
new file mode 100644
index 0000000000..9b5243c219
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontroller-store.ts
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+import type {
+ ReplicationController,
+ ReplicationControllerApi,
+} from "../../../common/k8s-api/endpoints";
+import type {
+ KubeObjectStoreDependencies,
+ KubeObjectStoreOptions,
+} from "../../../common/k8s-api/kube-object.store";
+import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store";
+
+export interface ReplicationControllerStoreDependencies extends KubeObjectStoreDependencies {
+}
+
+export class ReplicationControllerStore extends KubeObjectStore {
+ constructor(protected readonly dependencies: ReplicationControllerStoreDependencies, api: ReplicationControllerApi, opts?: KubeObjectStoreOptions) {
+ super(dependencies, api, opts);
+ }
+}
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.module.scss b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.module.scss
new file mode 100644
index 0000000000..db65602d19
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.module.scss
@@ -0,0 +1,8 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+.ReplicationControllers {
+
+}
diff --git a/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.tsx b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.tsx
new file mode 100644
index 0000000000..00f13feecc
--- /dev/null
+++ b/packages/core/src/renderer/components/+workloads-replicationcontrollers/replicationcontrollers.tsx
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+
+import styles from "./replicationcontrollers.module.scss";
+import React from "react";
+import { observer } from "mobx-react";
+import { KubeObjectListLayout } from "../kube-object-list-layout";
+import { SiblingsInTabLayout } from "../layout/siblings-in-tab-layout";
+import type { ReplicationControllerStore } from "./replicationcontroller-store";
+import { withInjectables } from "@ogre-tools/injectable-react";
+import replicationControllerStoreInjectable from "./replicationcontroller-store.injectable";
+import { NamespaceSelectBadge } from "../+namespaces/namespace-select-badge";
+import { Badge } from "../badge";
+
+enum columnId {
+ name = "name",
+ namespace = "namespace",
+ replicas = "replicas",
+ replicasDesired = "replicasDesired",
+ selector = "selector",
+}
+
+interface Dependencies {
+ store: ReplicationControllerStore;
+}
+
+const NonInjectedReplicationControllers = observer((props: Dependencies) => {
+ return (
+
+ item.getName(),
+ [columnId.namespace]: item => item.getNs(),
+ [columnId.selector]: item => item.getSelectorLabels(),
+ [columnId.replicas]: item => item.getReplicas(),
+ [columnId.replicasDesired]: item => item.getDesiredReplicas(),
+ }}
+ searchFilters={[
+ item => item.getSearchFields(),
+ item => item.getSelectorLabels(),
+ ]}
+ renderHeaderTitle="Replication Controllers"
+ renderTableHeader={[
+ { title: "Name", className: "name", sortBy: columnId.name, id: columnId.name },
+ {
+ title: "Namespace",
+ className: "namespace",
+ sortBy: columnId.namespace,
+ id: columnId.namespace,
+ },
+ { title: "Replicas", sortBy: columnId.replicas, id: columnId.replicas },
+ {
+ title: "Desired Replicas",
+ sortBy: columnId.replicasDesired,
+ id: columnId.replicasDesired,
+ },
+ {
+ title: "Selector",
+ sortBy: columnId.selector,
+ id: columnId.selector,
+ },
+ ]}
+ renderTableContents={item => [
+ item.getName(),
+ ,
+ item.getReplicas(),
+ item.getDesiredReplicas(),
+ item.getSelectorLabels().map(label => ()),
+ ]}
+ />
+
+ );
+});
+
+export const ReplicationControllers = withInjectables(NonInjectedReplicationControllers, {
+ getProps: (di, props) => ({
+ ...props,
+ store: di.inject(replicationControllerStoreInjectable),
+ }),
+});
diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts
new file mode 100644
index 0000000000..df14d6cc35
--- /dev/null
+++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replication-controller-detail-item.injectable.ts
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import { getInjectable } from "@ogre-tools/injectable";
+import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
+import { computed } from "mobx";
+import {
+ kubeObjectMatchesToKindAndApiVersion,
+} from "../kube-object-matches-to-kind-and-api-version";
+import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable";
+import { ReplicationControllerDetails } from "../../../+workloads-replicationcontrollers";
+
+const replicationControllerDetailItemInjectable = getInjectable({
+ id: "replication-controller-detail-item",
+
+ instantiate(di) {
+ const kubeObject = di.inject(currentKubeObjectInDetailsInjectable);
+
+ return {
+ Component: ReplicationControllerDetails,
+ enabled: computed(() => isReplicationController(kubeObject.value.get()?.object)),
+ orderNumber: 10,
+ };
+ },
+
+ injectionToken: kubeObjectDetailItemInjectionToken,
+});
+
+export const isReplicationController = kubeObjectMatchesToKindAndApiVersion(
+ "ReplicationController",
+ ["v1"],
+);
+
+export default replicationControllerDetailItemInjectable;
diff --git a/packages/core/src/renderer/utils/rbac.ts b/packages/core/src/renderer/utils/rbac.ts
index 00135a6492..18748bcfac 100644
--- a/packages/core/src/renderer/utils/rbac.ts
+++ b/packages/core/src/renderer/utils/rbac.ts
@@ -27,6 +27,7 @@ export const ResourceNames: Record = {
"deployments": "Deployments",
"statefulsets": "Stateful Sets",
"replicasets": "Replica Sets",
+ "replicationcontrollers": "Replication Controllers",
"jobs": "Jobs",
"cronjobs": "Cron Jobs",
"endpoints": "Endpoints",
From 4bf72742fd93b04e3aec7f9864ccce0bd36745b9 Mon Sep 17 00:00:00 2001
From: Janne Savolainen
Date: Thu, 16 Feb 2023 14:49:43 +0200
Subject: [PATCH 05/37] Fix configuration shown release details being stale
(#7174)
Signed-off-by: Janne Savolainen
---
...wing-details-for-helm-release.test.ts.snap | 2086 ++++++++++++++++-
.../showing-details-for-helm-release.test.ts | 91 +-
.../release-details-content.tsx | 6 +-
3 files changed, 2170 insertions(+), 13 deletions(-)
diff --git a/packages/core/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap b/packages/core/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap
index 86e80acc4c..c36ac69784 100644
--- a/packages/core/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap
+++ b/packages/core/src/features/helm-releases/__snapshots__/showing-details-for-helm-release.test.ts.snap
@@ -5818,7 +5818,7 @@ exports[`showing details for helm release given application is started when navi
@@ -7100,7 +7100,7 @@ exports[`showing details for helm release given application is started when navi
@@ -8382,7 +8382,7 @@ exports[`showing details for helm release given application is started when navi
@@ -9469,7 +9469,7 @@ exports[`showing details for helm release given application is started when navi
@@ -10557,7 +10557,7 @@ exports[`showing details for helm release given application is started when navi
@@ -11840,7 +11840,7 @@ exports[`showing details for helm release given application is started when navi
@@ -17047,3 +17047,2077 @@ exports[`showing details for helm release given application is started when navi
+
+
+
+
+
+
+
+
+
+ close
+
+
+
+ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+ some-other-name
+
+
+ content_copy
+
+
+
+ Copy
+
+
+
+
+ close
+
+
+
+ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ close
+
+
+
+ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+ some-other-name
+
+
+ content_copy
+
+
+
+ Copy
+
+
+
+
+ close
+
+
+
+ Close
+
+
+
+
+
+
+