From a0e4446c25671354bba350a8c103e78f436953f3 Mon Sep 17 00:00:00 2001 From: Juozas Gaigalas Date: Wed, 1 Nov 2023 00:49:09 +0200 Subject: [PATCH] (Prerelease) WGE integration (#495) Support for Template, Canary, Pipeline and GitOpsSet resources. Integration with WGE web portal and documentation. TreeNode code improvements weave-gitops-interop cluster ConfigMap support --- README.md | 32 ++- docs/images/config-enable-wge.png | Bin 0 -> 25406 bytes docs/images/vscode-templates-config.png | Bin 51951 -> 0 bytes docs/images/weave-gitops-treeview.png | Bin 0 -> 222645 bytes package.json | 86 +++++-- src/cli/kubernetes/apiResources.ts | 3 +- src/cli/kubernetes/kubectlGet.ts | 63 ++++- src/cli/kubernetes/kubernetesToolsKubectl.ts | 14 ++ src/commands/commands.ts | 11 + src/commands/copyResourceName.ts | 2 +- src/commands/createFromTemplate.ts | 2 +- src/commands/deleteSource.ts | 4 +- src/commands/deleteWorkload.ts | 4 +- .../fluxReconcileGitRepositoryForPath.ts | 2 +- src/commands/fluxReconcileSource.ts | 2 +- src/commands/fluxReconcileWorkload.ts | 2 +- src/commands/openInWgePortal.ts | 24 ++ src/commands/pipelineAutoPromotion.ts | 14 ++ src/commands/pullGitRepository.ts | 2 +- src/commands/refreshTreeViews.ts | 6 +- src/commands/resume.ts | 55 +---- src/commands/setContextToGops.ts | 40 +++ src/commands/showLogs.ts | 4 +- src/commands/suspend.ts | 51 +--- src/commands/trace.ts | 13 +- src/data/contextData.ts | 72 +++++- src/k8s/informers.ts | 3 +- src/k8s/list.ts | 27 +- src/types/extensionIds.ts | 8 +- src/types/flux/canary.ts | 231 ++++++++++++++++++ src/types/flux/gitOpsCluster.ts | 13 + src/types/flux/gitopsset.ts | 133 ++++++++++ src/types/flux/object.ts | 6 +- src/types/flux/pipeline.ts | 109 +++++++++ src/types/kubernetes/kubernetesTypes.ts | 33 ++- src/types/nodeContext.ts | 10 +- src/types/telemetryEventNames.ts | 1 + src/ui/icons.ts | 42 ++++ .../dataProviders/asyncDataProvider.ts | 16 +- .../kubernetesObjectDataProvider.ts | 19 +- .../dataProviders/simpleDataProvider.ts | 13 +- .../dataProviders/sourceDataProvider.ts | 14 +- .../dataProviders/templateDataProvider.ts | 23 -- .../dataProviders/wgeDataProvider.ts | 78 ++++++ .../dataProviders/workloadDataProvider.ts | 87 +------ src/ui/treeviews/nodes/anyResourceNode.ts | 16 +- .../nodes/cluster/clusterDeploymentNode.ts | 19 +- src/ui/treeviews/nodes/cluster/clusterNode.ts | 16 +- .../nodes/cluster/clusterTreeNode.ts | 8 + src/ui/treeviews/nodes/documentationNode.ts | 3 +- src/ui/treeviews/nodes/gitOpsTemplateNode.ts | 41 ---- .../treeviews/nodes/kubernetesObjectNode.ts | 74 ++++++ src/ui/treeviews/nodes/makeTreeNode.ts | 22 +- src/ui/treeviews/nodes/namespaceNode.ts | 27 +- src/ui/treeviews/nodes/source/bucketNode.ts | 5 - .../nodes/source/gitRepositoryNode.ts | 11 - .../nodes/source/helmRepositoryNode.ts | 11 - .../nodes/source/ociRepositoryNode.ts | 9 - src/ui/treeviews/nodes/source/sourceNode.ts | 16 +- .../nodes/{source => }/toolkitNode.ts | 39 +-- src/ui/treeviews/nodes/treeNode.ts | 165 +++++++------ src/ui/treeviews/nodes/wge/canaryNode.ts | 64 +++++ src/ui/treeviews/nodes/wge/environmentNode.ts | 94 +++++++ src/ui/treeviews/nodes/wge/gitOpsSetNode.ts | 36 +++ .../treeviews/nodes/wge/gitOpsTemplateNode.ts | 76 ++++++ src/ui/treeviews/nodes/wge/pipelineNode.ts | 62 +++++ src/ui/treeviews/nodes/wge/wgeNodes.ts | 106 ++++++++ .../nodes/workload/helmReleaseNode.ts | 50 +++- .../nodes/workload/kustomizationNode.ts | 47 +++- .../treeviews/nodes/workload/workloadNode.ts | 8 +- src/ui/treeviews/treeViews.ts | 70 +++++- .../createFromTemplate/openWebview.ts | 4 +- src/utils/makeTreeviewInfoNode.ts | 40 +-- src/utils/markdownUtils.ts | 134 +++++----- src/utils/namespacedFluxObject.ts | 2 +- src/utils/treeNodeUtils.ts | 14 +- 76 files changed, 2016 insertions(+), 647 deletions(-) create mode 100644 docs/images/config-enable-wge.png delete mode 100644 docs/images/vscode-templates-config.png create mode 100644 docs/images/weave-gitops-treeview.png create mode 100644 src/commands/openInWgePortal.ts create mode 100644 src/commands/pipelineAutoPromotion.ts create mode 100644 src/commands/setContextToGops.ts create mode 100644 src/types/flux/canary.ts create mode 100644 src/types/flux/gitOpsCluster.ts create mode 100644 src/types/flux/gitopsset.ts create mode 100644 src/types/flux/pipeline.ts create mode 100644 src/ui/icons.ts delete mode 100644 src/ui/treeviews/dataProviders/templateDataProvider.ts create mode 100644 src/ui/treeviews/dataProviders/wgeDataProvider.ts create mode 100644 src/ui/treeviews/nodes/cluster/clusterTreeNode.ts delete mode 100644 src/ui/treeviews/nodes/gitOpsTemplateNode.ts create mode 100644 src/ui/treeviews/nodes/kubernetesObjectNode.ts rename src/ui/treeviews/nodes/{source => }/toolkitNode.ts (62%) create mode 100644 src/ui/treeviews/nodes/wge/canaryNode.ts create mode 100644 src/ui/treeviews/nodes/wge/environmentNode.ts create mode 100644 src/ui/treeviews/nodes/wge/gitOpsSetNode.ts create mode 100644 src/ui/treeviews/nodes/wge/gitOpsTemplateNode.ts create mode 100644 src/ui/treeviews/nodes/wge/pipelineNode.ts create mode 100644 src/ui/treeviews/nodes/wge/wgeNodes.ts diff --git a/README.md b/README.md index 292cbbfd..f42c274d 100644 --- a/README.md +++ b/README.md @@ -125,17 +125,37 @@ The GitOps Tools Extension depends on the [Kubernetes Tools](https://marketplace - Make sure you have [successfully authenticated](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli) on your `az` CLI and have access to the [correct subscription](https://docs.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest#az_account_set) for your AKS or ARC cluster. - The easiest way to get your AKS or Arc cluster visible by the GitOps and Kubernetes Extensions, is to use the `az` CLI to merge the kubeconfig for accessing your cluster onto the default `kubectl` config. Use `get-credentials` as shown in the [official CLI documentation](https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest#az_aks_get_credentials). In order to enable GitOps in a cluster you will likely need the `--admin` credentials. -## Weave GitOps Enterprise (WGE) Templates +## Weave GitOps Enterprise (WGE) Integration -WGE users can access GitOpsTemplates directly from this extensions. Templates are provided by cluster administrators (Platform Teams) and can be used to quickly create cluster and configure applications with GitOps. +WGE users can access GitOpsTemplates directly from this extensions. WGE integration adds another treeview that shows `GitOpsTemplate`, `Canary`, `Pipeline`, and `GitOpsSet` resources and adds new interactions to each type of resource. All WGE resources have a right-click action to open them in WGE portal. -Templates are an opt-in feature that must be enabled in setting: +GitOpsTemplates are provided by cluster administrators (Platform Teams) and can be used to quickly create cluster and configure applications with GitOps. Flagger Canaries status can be visualized and their progress tracked. Pipelines are listed with their targets and each `GitopsCluster` attached to a Pipeline can be set as the current selected cluster for quick navigation between clusters. -![Enable GitOpsTemplates](docs/images/vscode-templates-config.png) +WGE integration is an opt-in feature that must be enabled in setting: -After that they can be seen in a new 'Templates' view. Right-click a template to use it: +![Enable WGE Features](docs/images/config-enable-wge.png) + +![Weave GitOps Treeview](docs/images/weave-gitops-treeview.png) + +![Create GitOps Template](docs/images/vscode-templates-view.png) + +### WGE Configuration + +For the integration to work, this extension needs a ConfigMap that provides WGE information and settings: + +`kubectl create configmap weave-gitops-interop --from-literal=portalUrl='https://WGE-CLUSTER-HOST' --from-literal=wgeClusterName='WGE-CLUSTER-NAME' -n flux-system`` + +``` +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: flux-system + name: weave-gitops-interop +data: + portalUrl: https://mccp.howard.moomboo.space + wgeClusterName: howard-moomboo-space +``` -![Use GitOpsTemplates](docs/images/vscode-templates-view.png) diff --git a/docs/images/config-enable-wge.png b/docs/images/config-enable-wge.png new file mode 100644 index 0000000000000000000000000000000000000000..5c94322721f7b994f44df858d760e05ba1dc8897 GIT binary patch literal 25406 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 IiUsb!0AUMYPXGV_ literal 0 HcmV?d00001 diff --git a/docs/images/vscode-templates-config.png b/docs/images/vscode-templates-config.png deleted file mode 100644 index 503016ef445041b485634942f42cb715c3c88d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51951 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 diff --git a/docs/images/weave-gitops-treeview.png b/docs/images/weave-gitops-treeview.png new file mode 100644 index 0000000000000000000000000000000000000000..53a5874ea4451963cab88a8e3d31922d8543418c GIT binary patch literal 222645 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