From f8763dcf5fb31a477a839eb8933715c655de00b7 Mon Sep 17 00:00:00 2001 From: Kingdon Barrett Date: Tue, 5 Sep 2023 12:12:56 -0400 Subject: [PATCH 1/5] First try: fully qualified Flux API names Signed-off-by: Kingdon Barrett --- src/cli/kubernetes/kubectlGet.ts | 10 ++++--- src/types/kubernetes/kubernetesTypes.ts | 35 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/cli/kubernetes/kubectlGet.ts b/src/cli/kubernetes/kubectlGet.ts index 6ad1b478..2d552b98 100644 --- a/src/cli/kubernetes/kubectlGet.ts +++ b/src/cli/kubernetes/kubectlGet.ts @@ -9,7 +9,7 @@ import { HelmRelease } from 'types/flux/helmRelease'; import { HelmRepository } from 'types/flux/helmRepository'; import { Kustomization } from 'types/flux/kustomization'; import { OCIRepository } from 'types/flux/ociRepository'; -import { Deployment, Kind, KubernetesObject, Pod } from 'types/kubernetes/kubernetesTypes'; +import { Deployment, FullyQualifiedKinds, Kind, KubernetesObject, Pod } from 'types/kubernetes/kubernetesTypes'; import { TelemetryError } from 'types/telemetryEventNames'; import { parseJson, parseJsonItems } from 'utils/jsonUtils'; import { invokeKubectlCommand } from './kubernetesToolsKubectl'; @@ -49,9 +49,12 @@ export async function getResourcesAllNamespaces(kind return list as T[]; } + let fqKind = FullyQualifiedKinds[kind]; - const shellResult = await invokeKubectlCommand(`get ${kind} -A -o json`); - + const shellResult = await invokeKubectlCommand(`get ${fqKind} -A -o json`); + // if (kind == Kind.HelmRelease) { + // console.warn("HelmRelease is not fully qualified, put your debugger instance here"); + // } if (shellResult?.code !== 0) { console.warn(`Failed to \`kubectl get ${kind} -A\`: ${shellResult?.stderr}`); if (shellResult?.stderr && !notAnErrorServerDoesntHaveResourceTypeRegExp.test(shellResult.stderr)) { @@ -181,4 +184,3 @@ export async function getPodsOfADeployment(name = '', namespace = ''): Promise

Date: Tue, 5 Sep 2023 13:46:55 -0400 Subject: [PATCH 2/5] More fully qualified kinds --- src/ui/treeviews/nodes/treeNode.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/ui/treeviews/nodes/treeNode.ts b/src/ui/treeviews/nodes/treeNode.ts index 021bc880..e914b361 100644 --- a/src/ui/treeviews/nodes/treeNode.ts +++ b/src/ui/treeviews/nodes/treeNode.ts @@ -2,7 +2,7 @@ import { Command, MarkdownString, ThemeColor, ThemeIcon, TreeItem, TreeItemColla import { CommandId } from 'types/extensionIds'; import { FileTypes } from 'types/fileTypes'; -import { KubernetesObject } from 'types/kubernetes/kubernetesTypes'; +import { Kind, FullyQualifiedKinds, KubernetesObject } from 'types/kubernetes/kubernetesTypes'; import { asAbsolutePath } from 'utils/asAbsolutePath'; import { getResourceUri } from 'utils/getResourceUri'; import { KnownTreeNodeResources, createMarkdownTable } from 'utils/markdownUtils'; @@ -141,6 +141,22 @@ export class TreeNode extends TreeItem { .join(''); } + fullyQualifyKind(): string { + let stringKind = ''; + if(this.resource) { + stringKind = this.resource.kind as string; + } + if (stringKind) { + let typedKind : Kind = stringKind as Kind; + let fqKind = FullyQualifiedKinds[typedKind]; + + if(fqKind !== '') { + stringKind = fqKind as string; + } + } + return stringKind; + } + // @ts-ignore get tooltip(): string | MarkdownString { if (this.resource) { @@ -152,9 +168,10 @@ export class TreeNode extends TreeItem { get command(): Command | undefined { // Set click event handler to load kubernetes resource as yaml file in editor. if (this.resource) { + let stringKind = this.fullyQualifyKind(); const resourceUri = getResourceUri( this.resource.metadata?.namespace, - `${this.resource.kind}/${this.resource.metadata?.name}`, + `${stringKind}/${this.resource.metadata?.name}`, FileTypes.Yaml, ); From 5e541c3d78e9a2a3bb9aed922b2f81f1ac5c28f5 Mon Sep 17 00:00:00 2001 From: Kingdon Barrett Date: Tue, 5 Sep 2023 13:47:50 -0400 Subject: [PATCH 3/5] fix type error Signed-off-by: Kingdon Barrett --- src/types/kubernetes/kubernetesTypes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/kubernetes/kubernetesTypes.ts b/src/types/kubernetes/kubernetesTypes.ts index a5593c52..1f27f913 100644 --- a/src/types/kubernetes/kubernetesTypes.ts +++ b/src/types/kubernetes/kubernetesTypes.ts @@ -75,7 +75,7 @@ export const FullyQualifiedKinds: KindMapType = { GitRepository: FullyKind.GitRepository, OCIRepository: FullyKind.OCIRepository, HelmRepository: FullyKind.HelmRepository, - HelmReleases: FullyKind.HelmRelease, + HelmRelease: FullyKind.HelmRelease, Kustomization: FullyKind.Kustomization, GitOpsTemplate: FullyKind.GitOpsTemplate, List: FullyKind.List, From e4c20762be7ef7c1485fbc1044044be78cca890b Mon Sep 17 00:00:00 2001 From: Kingdon Barrett Date: Tue, 5 Sep 2023 13:48:09 -0400 Subject: [PATCH 4/5] fix linting error Signed-off-by: Kingdon Barrett --- src/ui/treeviews/nodes/treeNode.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/treeviews/nodes/treeNode.ts b/src/ui/treeviews/nodes/treeNode.ts index e914b361..8793386b 100644 --- a/src/ui/treeviews/nodes/treeNode.ts +++ b/src/ui/treeviews/nodes/treeNode.ts @@ -147,7 +147,7 @@ export class TreeNode extends TreeItem { stringKind = this.resource.kind as string; } if (stringKind) { - let typedKind : Kind = stringKind as Kind; + let typedKind: Kind = stringKind as Kind; let fqKind = FullyQualifiedKinds[typedKind]; if(fqKind !== '') { From 19d9bc4e8511091ac0b0d4fd1ad2607bf05788cf Mon Sep 17 00:00:00 2001 From: Kingdon Barrett Date: Tue, 5 Sep 2023 13:52:25 -0400 Subject: [PATCH 5/5] remove debugger stuff Signed-off-by: Kingdon Barrett --- src/cli/kubernetes/kubectlGet.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/cli/kubernetes/kubectlGet.ts b/src/cli/kubernetes/kubectlGet.ts index 2d552b98..2de4d928 100644 --- a/src/cli/kubernetes/kubectlGet.ts +++ b/src/cli/kubernetes/kubectlGet.ts @@ -52,9 +52,6 @@ export async function getResourcesAllNamespaces(kind let fqKind = FullyQualifiedKinds[kind]; const shellResult = await invokeKubectlCommand(`get ${fqKind} -A -o json`); - // if (kind == Kind.HelmRelease) { - // console.warn("HelmRelease is not fully qualified, put your debugger instance here"); - // } if (shellResult?.code !== 0) { console.warn(`Failed to \`kubectl get ${kind} -A\`: ${shellResult?.stderr}`); if (shellResult?.stderr && !notAnErrorServerDoesntHaveResourceTypeRegExp.test(shellResult.stderr)) {