Giter Club home page Giter Club logo

vscode-gitops-tools's Introduction

GitOps Tools for Visual Studio Code

VSCode Marketplace Link Install Counter

Weaveworks GitOps Tools Extension provides an intuitive way to manage, troubleshoot and operate your Kubernetes environment following the GitOps operating model. GitOps accelerates your development lifecycle and simplifies your continuous delivery pipelines. The extension is built on Flux (a CNCF open source project). To learn more about the Flux GitOps toolkit, visit fluxcd.io

Use this extension to visualize, configure and debug Flux objects (sources and workloads) needed for GitOps workflows. For example, with this extension you can create a Flux GitRepository source object that tracks a Git repository containing Kubernetes manifests for your application. Then add a Kustomization workload object that periodically applies (reconciles) the manifests from the repository to your cluster. Now your Kubernetes changes are managed through git!

Your feedback is very important to us! Please help us by submitting issues for bugs, enhancements and share with us how you are using the extension.

This extension is under active development with rolling beta release cycle and stable releases. Breaking changes remain a possibility.

Getting Started

Requirements

There are a few requirements before installing and using the extension:

  • Install the kubectl command-line tool
  • You must have a working cluster selected in the kubectl config. A kind or Docker Desktop cluster is an easy way to get started. More information about kubeconfigs is available here
  • The flux tool is required and can be installed from this extension
  • Additional dependencies for Weave GitOps Enterprise and Azure users

Once you have satisfied these requirements you can find and install GitOps Tools in the Extension Marketplace by searching for "fluxcd" or "gitops".

kubectl proxy

This extension uses two different methods to get information from the Kubernetes cluster. It preferentially will run kubectl proxy -p 0 for your selected cluster and will use the proxy with a javascript client for faster performance and real-time updates. This also requires watch RBAC for Flux resources. If the proxy client connection can't be established the extension will fall back to kubectl get for querying the cluster.

Features

  • Configure, visualize and manage Flux resources
  • Tree views for Clusters, Sources, and Workloads
  • Observe Flux resource updates in the cluster in real-time
  • Select clusters and examine installed GitOps Toolkit components
  • Enable and Disable GitOps (install/uninstall Flux) on clusters
  • Create, view and edit sources (git, OCI, Helm and Bucket), and workloads (Kustomization and HelmRelease)
  • Reconcile sources and workloads on demand
  • Pause and resume scheduled reconciliation
  • Create GitRepository and Kustomization objects from folders opened in vscode
  • Clone GitRepository source to user machine and open them in the editor
  • Preview sources, workloads and other objects information with tooltips
  • Open remote resources as .yaml files in the editor
  • Open and edit the kubeconfig file
  • Trace Kubernetes objects created by workloads
  • Watch Flux controller logs and flux CLI commands for diagnostics
  • Documentation links for Flux and Weave GitOps embedded in the extension

Video / Demo

GitOps Deployments from VS Code with little to no Kubernetes Knowledge

We presented Flux and the GitOps Tools extension to our widest audience yet, the VSCode Live Stream! Follow this video link to learn about a new feature integration we built into the extension: Weave GitOps Enterprise Templates.

GUI

Tree Views and Resources

VSCode GitOps Tools

(Clusters, Sources and Workflows tree views; Kustomization tooltip and HelmRepository YAML view)

Configure GitOps View

VSCode GitOps Tools Context Menu

(Configure GitOps view is used to create sources and workloads)

Context Menus

VSCode GitOps Tools Context Menu

(Right clicking in the Explorer view to create Flux objects from folders)

GitOps Commands

You can access GitOps tools check, CLI dependendency versions, Clusters, Sources and Workloads views Focus, Refresh and other commands by typing GitOps in View -> Command Palette... menu prompt:

VSCode GitOps Commands

Dependencies

The extension uses several CLI commands that must be installed and available in your system PATH.

You will need the kubectl CLI tool to use this extension.

flux is also required but can be installed by the extension:

VSCode GitOps Tools

For users running clusters in Azure including AKS and Arc clusters, the az command line tool is also required.

Tool Description Installation
kubectl The kubectl command line tool lets you control Kubernetes clusters. Install Kubectl
flux Flux is a set of continuous and progressive delivery solutions for Kubernetes. Install Flux CLI
git Git is a free and open source distributed version control system. Install git

Optional tools:

Tool Description Installation
gitops Weave GitOps Enterprise (WGE) CLI (required for Templates feature) Install WGE CLI
az Azure CLI. (only if using the extension to create or register Azure clusters) Install az
docker Docker is an open platform for developing, shipping, and running applications. Install Docker

If the extension needs one of the core Kubernetes tools and they are missing, it will prompt you to install them.

The GitOps Tools Extension depends on the Kubernetes Tools extension, which will be installed automatically if you don't already have it.

Azure recommendations

  • Make sure you have successfully authenticated on your az CLI and have access to the correct subscription 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. In order to enable GitOps in a cluster you will likely need the --admin credentials.

Weave GitOps Enterprise (WGE) Integration

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.

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.

WGE integration is an opt-in feature that must be enabled in settings:

Enable WGE Features

Weave GitOps Treeview

Create GitOps Template

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

Common Issues

There are no clusters showing in my Clusters pane

We rely on the Kubernetes extension to discover and connect to clusters. If you are having issues accessing or viewing your cluster, follow the documentation provided by the Kubernetes extension.

Confirm that your configuration context shows in a terminal running kubectl config get-contexts

Switching from an unreachable cluster context to a working cluster

Unreachable or laggy clusters can create long running that cluster resource queries that finish after switching to a working cluster context. This can lead to the slow cluster data overwriting the current cluster treeview. Clusters -> Refresh button will reinitialize the views with current data. Timeout settings can be adjusted under GitOps section in VSCode Settings.

Timeouts and flux check warnings

The extension has timeout options that can make be adjusted in VSCode settings to match your cluster network constraints. The default timeout for any data query operation is 60 seconds.

flux check command can also be disabled in the settings. This will stop flux check warnings about old versions but will disable Flux controller status icons in the the Clusters treeview.

Data and Telemetry

The GitOps Tools Extension for Visual Studio Code collects usage data and sends it to Weaveworks to help improve our products and services. Read our privacy statement to learn more. This extension respects the telemetry.enableTelemetry setting.

Installation Options

VSCodium

VSCodium user can search and install from the VSCodium Open-VSX extension registry.

Manual Installation

  1. Download the latest vsix artifact version from our Releases page.
  2. Run code --install-extension gitops-tools-$VERSION.vsix

vscode-gitops-tools's People

Contributors

arunsathiya avatar dependabot[bot] avatar github-actions[bot] avatar juozasg avatar kingdonb avatar mewzherder avatar morancj avatar murillodigital avatar pjbgf avatar randomfractals avatar sethfalco avatar sympatheticmoose avatar usernamehw avatar vanessaabankwah avatar vasu1124 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vscode-gitops-tools's Issues

Add flux.ts pseudo-terminal for integrating Flux CLI commands

We'll probably keep gitops terminal developed in #8

However, we'll need flux.ts that is more like kubectl CLI integration in k8s tools extension, with its own output channel to run some of the Flux CLI commands, capture their outputs, transform results and update our GitOps tree views.

See these k8s tools and gitops terminal notes for more info: #8 (comment)

This is required for integrating commands like flux reconcile for sources in #42 and deployments in #43.

Show first level of objects created as children of an Application of type `Kustomization`

As a user, I want to be able to see a tree of resources that have been created by a specific Application of type Kustomization.

A Kustomization can effectively create any number of arbitrary objects as its children. These components may be any valid Kubernetes Kind or Custom Resource, even CRD themselves.

Because of this complexity, we will need to develop our full nested tree building functionality in multiple iterations, and each different Kind of object may require different commands to track it's children.

This ticket will focus only on the first level of resources created by any one specific Kustomization . Consider that a Kustomization may create objects across different namespaces, and it may create Namespaces as well.

Commands

Note:

  • All immediate children to a Kustomization will have a specific label matching the name of the parent Kustomization, we will use that label to identify the immediately created objects (in other words, this method will not allow us to track children at any further level or recursion)
  • The kinds of objects available in a cluster, besides "built-in" objects on native Kubernetes API, must be dynamically determined.

Step 1: Get a list of all available objects kinds in the cluster:

kubectl api-resources --verbs=list -o name

The above command will return a new-line separated list of all possible object Kinds available in the server, this list must be passed as a string of comma separated values to the following command.

Step 2: Get all resources that match the Kustomization label.

kubectl get {comma separated list of all lines returned by the command avobe} -l kustomize.toolkit.fluxcd.io/name={name of Kustomization} -n {namespace where Kustomization exists} -o json

For sample output please see the following Gist: https://gist.github.com/murillodigital/c96fb943a17a130c91bab8897cfc2079

Tree display / UI

  • Each Application should allow for expanding a tree underneath showing the various objects that it created, in this iteration we will focus on the immediate first tier of objects created, as they can nest "infinitely".

  • Each item returned by the get command in Step 2 above must be added as a child node to the applicable Kustomization following the syntax: (Namespace) kind: name. Using the sample output linked above as example, two children nodes would be added below the Kustomization:

(blue-ns) Service: hello-kubernetes-eks-ha
(blue-ns) Deployment: hello-kubernetes-eks-ha
  • On click, the full object manifest should be loaded in the editor.

Note: Properties to display and action on hover is still undefined and outside the scope of this ticket.

Important Implementation Details

As stated, each Application may create any number of objects of any Kind, considering K8s CRD model, the Application may create new Kinds altogether that may be proprietary. Our implementation must be generic and abstracted enough to be able to display this level of diversity without having to hardcode specific properties or kinds of objects.

Why it's important

Both User Personas will have as utmost interest by using the Extension to have visibility into the health and deployment status of any and every resource they have declared in their desired state. Providing a complete view of all those resources is necessary to avoid confusion and misinterpretation of the status of a given deployment.

Indicate fetch errors on sources

As a user, I want to quickly tell whether there's problems fetching from some source, and quickly see what the error message is.

Sources may run into problems trying to connect or fetch revisions. Following VS Code Extension guidelines, provide a quick visual cue to users if a source has entered a problem state, and allow the user quick access to see the error message (again following extension best practices, whether tooltip or otherwise.

A source will be in a problem state when the attribute status.conditions[0].status is False and the information required to be shown for error message is status.conditions[0].message and status.conditions[0].reason

Please refer to #40 for details on how to query for the payload below.

kubectl get gitrepository sample-k8s-not -o yaml
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: GitRepository
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"source.toolkit.fluxcd.io/v1beta1","kind":"GitRepository","metadata":{"annotations":{},"name":"sample-k8s-not","namespace":"default"},"spec":{"interval":"1m","ref":{"branch":"main"},"url":"https://github.com/murillodigital/sample-k8s-not"}}
  creationTimestamp: "2021-08-31T20:03:41Z"
  finalizers:
  - finalizers.fluxcd.io
  generation: 2
  name: sample-k8s-not
  namespace: default
  resourceVersion: "1318400"
  uid: 7b5c3be3-6028-4af0-86ec-70eecc76720e
spec:
  gitImplementation: go-git
  interval: 1m0s
  ref:
    branch: main
  timeout: 20s
  url: https://github.com/murillodigital/sample-k8s-not
status:
  conditions:
  - lastTransitionTime: "2021-08-31T20:03:52Z"
    message: 'unable to clone ''https://github.com/murillodigital/sample-k8s-not'',
      error: authentication required'
    reason: GitOperationFailed
    status: "False"
    type: Ready
  observedGeneration: 2

Refactor kubernetesTools interface

Convert kubernetesTools interface to a class with methods to access kubectlProvider api, config, clusters, kustomizations, git/helm repos and buckets.

Enable GitOps for existing, not AKS, Kubernetes cluster

Create user interface to enable GitOps on an existing cluster already connected to the Kubernetes extension.

From the initial functional spec. by @murillodigital:

The platform operator should be able to enable GitOps in an existing cluster already connected to the Kubernetes extension by clicking a button. A repo should be created and opened as a folder automatically to represent the objects being synchronized with the cluster. The platform operator will be able to see at a glance when the cluster has reached a reconciled state.

As a user, I want to select a non-AKS Kubernetes cluster that does not have Flux installed and have the various Flux components automatically installed in it.

Present the user with a right-click option to "Enable GitOps", only available when the cluster does not have Flux installed (see #36).

The command to execute against the cluster is flux install and should generate output similar to the following:

flux install
✚ generating manifests
✔ manifests build completed
► installing components in flux-system namespace
◎ verifying installation
✔ source-controller: deployment ready
✔ kustomize-controller: deployment ready
✔ helm-controller: deployment ready
✔ notification-controller: deployment ready
✔ install finished

One the install is completed, the cluster should reload and, as per #36, display the version of flux and all its related components.

Provide Kubernetes enabled sample application repos, staging environment, and account for testing

@murillodigital I will need this to get started on #17 per our prior discussion during this MVP project kickoff.

Please provide links to Kubernetes enabled sample app repos you might already have in place and you'd like to use for validating functionality of this GitOps vscode extension.

Also, I assume we'll be testing them in Azure cloud. I have an Azure account, but I'd rather deploy those sample apps under your org, so you cover the cost of spinning up those app nodes.

Allow instant reconciliation of any application

As a user, I want to request an immediate reconciliation of any one of my Application.

Each Application is configured with a specific interval, users however are able to request instant reconciliation manually.

Allow the user to request immediate reconciliation of any application (HelmRelease or Kustomization), by right clicking (if other type of action is suggested given VS Code Extension best practices please commend for discussion) any on top level node of the sources panel and selecting an appropriate action.

The execution of reconciliation will require the flux cli.

In general, the command to execute is:

Commands

  • HelmRelease Specific reconciliation example: flux reconcile helmrelease sample-helm-release -n default
  • Kustomization specific reconciliation example: flux reconcile kustomization sample-kustomization -n default

Note: Make sure to pass the proper namespace and object name for each command given the element selected in the UI by the user.

Command Output

The output of the command may vary slightly between sources, but in general will be as follows:

  • Sample HelmRelease Output:
flux reconcile helmrelease podinfo-helm -n default
► annotating HelmRelease podinfo-helm in default namespace
✔ HelmRelease annotated
◎ waiting for HelmRelease reconciliation
✔ HelmRelease reconciliation completed
✔ applied revision 6.0.0
  • Sample Kustomization Output:
flux reconcile kustomization kustomization1 -n default
► annotating Kustomization kustomization1 in default namespace
✔ Kustomization annotated
◎ waiting for Kustomization reconciliation
✔ Kustomization reconciliation completed
✔ applied revision main/593cf7b48bf30079cda3c9c19c82f1c823ca0826

For any more specifics on command execution and outputs please refer to the official documentation:
See https://fluxcd.io/docs/cmd/flux_reconcile_helmrelease/ and https://fluxcd.io/docs/cmd/flux_reconcile_kustomization/ for reference.

Allow instant reconciliation of any source

As a user, I want to request an immediate reconciliation of any one of my sources.

Each source is configured with a specific interval, users however are able to request instant reconciliation manually.

Allow the user to request immediate reconciliation of any source, by right clicking (if other type of action is suggested given VS Code Extension best practices please commend for discussion) any on top level node of the sources panel and selecting an appropriate action.

The execution of reconciliation will require the flux cli.

In general, the command to execute is:

Commands

The general command syntax is the following, which applies to all kids of Sources:

flux reconcile source <type of source> <name of resource> -n {namespace}
  • Git Specific reconciliation example: flux reconcile source git sample-k8s -n default
  • Helm specific reconciliation example: flux reconcile source helm sample-helm -n default
  • Bucket specific reconciliation example: flux reconcile source bucket sample-bucket -n default

Note: Make sure to pass the proper namespace and object name for each command given the element selected in the UI by the user.

Command Output

The output of the command may vary slightly between sources, but in general will be as follows:

  • Sample GitRepository Output:
flux reconcile source git sample-k8s -n default
► annotating GitRepository sample-k8s in default namespace
✔ GitRepository annotated
◎ waiting for GitRepository reconciliation
✔ GitRepository reconciliation completed
✔ fetched revision main/593cf7b48bf30079cda3c9c19c82f1c823ca0826
  • Sample HelmRepository Output:
flux reconcile source helm podinfo -n default
► annotating HelmRepository podinfo in default namespace
✔ HelmRepository annotated
◎ waiting for HelmRepository reconciliation
✔ HelmRepository reconciliation completed
✔ fetched revision 8411f23d07d3701f0e96e7d9e503b7936d7e1d56

Note: A Failed reconciliation will produce output similar to the following:

flux reconcile source bucket podinfo-bucket -n default
► annotating Bucket podinfo-bucket in default namespace
✔ Bucket annotated
◎ waiting for Bucket reconciliation
✔ Bucket reconciliation completed
✗ Bucket reconciliation failed

For any more specifics on command execution and outputs please refer to the official documentation:
See https://fluxcd.io/docs/cmd/flux_reconcile_source/ for reference.

Package Sprint 3 release

  • updated changelog, screenshots, and docs with features delivered in Sprint 3
  • create vscode-gitops-tools-v0.3.0.vsix installation package
  • create v0.3.0 release tag

Indicate latest revision fetched by any source

As a user, I want to know what revision is currently fetched for any one of my sources.

There are three types of sources: HelmRepositories, GitRepositories and Buckets. Each of these sources will have fetched a specific version (aka. revision) of the source's content. This will always be shown in the form of a SHA (see status.artifact.revision in the HelmRepository sample below). Display the first 7 characters of the revision together with the source, following VS Code Extension best practices - only requests are, should be constantly visible (avoid mouseover tips) but I have no issue with it being nested below the source's node for example.

kubectl get helmrepository podinfo -o yaml
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"source.toolkit.fluxcd.io/v1beta1","kind":"HelmRepository","metadata":{"annotations":{},"name":"podinfo","namespace":"default"},"spec":{"interval":"5m","url":"https://stefanprodan.github.io/podinfo"}}
  creationTimestamp: "2021-08-31T16:47:30Z"
  finalizers:
  - finalizers.fluxcd.io
  generation: 2
  name: podinfo
  namespace: default
  resourceVersion: "1257490"
  uid: 258576df-4bfd-4dbb-9684-2928b06066bd
spec:
  interval: 5m0s
  timeout: 1m0s
  url: https://stefanprodan.github.io/podinfo
status:
  artifact:
    checksum: 8411f23d07d3701f0e96e7d9e503b7936d7e1d56
    lastUpdateTime: "2021-08-31T16:47:30Z"
    path: helmrepository/default/podinfo/index-8411f23d07d3701f0e96e7d9e503b7936d7e1d56.yaml
    revision: 8411f23d07d3701f0e96e7d9e503b7936d7e1d56
    url: http://source-controller.flux-system.svc.cluster.local./helmrepository/default/podinfo/index-8411f23d07d3701f0e96e7d9e503b7936d7e1d56.yaml
  conditions:
  - lastTransitionTime: "2021-08-31T16:47:30Z"
    message: 'Fetched revision: 8411f23d07d3701f0e96e7d9e503b7936d7e1d56'
    reason: IndexationSucceed
    status: "True"
    type: Ready
  observedGeneration: 2
  url: http://source-controller.flux-system.svc.cluster.local./helmrepository/default/podinfo/index.yaml

The command to execute to get the data for a source as shown above is:

kubectl get <GitRepository or HelmRepository or Bucket> <source name> -o yaml -n {namespace}

Select a cluster to update other tree views

Selecting any cluster should automatically update the other views (sources, etc) to display the applicable items for that cluster.

Just to clarify - VSCode tree view doesn't support event on focus change (when pressing ), but it does support event when clicking or pressing Enter)

  • Active cluster is marked in tree view (has collapsible symbol)
  • Clicking on the cluster switches the active context
  • Switching the context updates other tree views

Create markdown table hovers for tree view items

Need to decide whish properties to show:

  • Api version
  • Kind
  • Name
  • Namespace
  • Cluster
    • ???
  • Git repository
    • ???
  • Helm repository
    • ???
  • Bucket
    • ???
  • Kustomize
    • ???
  • Helm release
    • ???
  • Flux controllers inside the cluster tree view
    • ???

Move kubectl CLI object types/results interfaces to separate .ts files under ./kubernetes folder

Since we have a dedicated ./kubernetes folder for our integration with k8s tools extension and kubectl, I think kubernetesTools.ts api could be more readable if we move the results and k8s object types interfaces to separate .ts files to clearly track the imports and usage of those types in our tree views and other places.

This is in reference to all the interfaces defined here: https://github.com/weaveworks/vscode-gitops-tools/blob/main/src/kubernetes/kubernetesTools.ts#L169

Create GitOps status bar

for display of running GitOps flux command or current step progress.

This is in addition to displaying full trace of flux commands we will provide in flux terminal output in #48.

Create GitOps Repositories/Sources tree view

see full gitops sidebar mockup in #10 (comment)

gitops-sources-mockup

Initial requirements from @murillodigital:

Sources will show a list of all GitRepository, HelmRepository and Bucket resources visible to the user.

  • It should be visible at a glance whether the sources have succeeded in fetching or are in some form of failed state.
  • It should be visible at a glance whether there is an ongoing fetch operation. (likely using standard check, X and spinner icons)

Cluster tree view - show if gitops is enabled

It should be visible at a glance (via some UI element) whether the cluster is enabled for GitOps or not

As a user, I want to be able to tell whether Flux is running in my cluster, its version and the version and health of the various components that make up Flux:

CLUSTERS
   name (endpoint)
   	  Flux v0.16.2 is running
   	  helm-controller (version, status)
   	  image-automation-controller (version, status)
   	  image-reflector-controller (version, status)
   	  kustomize-controller (version, status)
   	  notification-controller (version, status)
   	  source-controller (version, status)

The simplest way to get this information is by running flux check against the cluster. The output of the command will be as follows - note that the output of the command is not quite parse friendly (neither json nor yaml), it is also possible to query for this information using kubectl commands but it would require multiple commands to be executed to get a similar set of details, please advice if this is a better direction:

flux check
► checking prerequisites
✗ flux 0.16.2 <0.17.0 (new version is available, please upgrade)
✔ kubectl 1.22.1 >=1.18.0-0
✔ Kubernetes 1.21.3+k3s1 >=1.16.0-0
► checking controllers
✔ helm-controller: deployment ready
► fluxcd/helm-controller:v0.11.2
✔ image-automation-controller: deployment ready
► fluxcd/image-automation-controller:v0.14.1
✔ image-reflector-controller: deployment ready
► fluxcd/image-reflector-controller:v0.11.1
✔ kustomize-controller: deployment ready
► fluxcd/kustomize-controller:v0.14.0
✔ notification-controller: deployment ready
► fluxcd/notification-controller:v0.16.0
✔ source-controller: deployment ready
► fluxcd/source-controller:v0.15.4
✔ all checks passed

Following the VS Code Extension guidelines, use node icons to quickly provide a visual hint of whether things are good or not. Note that there is a scenario where there will be suggestions, such as in the sample above where it is recommended to upgrade Flux to a new version. Handling that type of suggestion is likely outside the scope of this ticket.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.