Convert Figma logo to code with AI

vmware-archive logooctant

Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.

6,280
483
6,280
287

Top Related Projects

6,327

📦 Find and install kubectl plugins

10,890

Customization of kubernetes YAML configurations

14,267

General-purpose web UI for Kubernetes clusters

22,461

Lens - The way the world runs Kubernetes

26,434

🐶 Kubernetes CLI To Manage Your Clusters In Style!

17,333

Declarative Continuous Deployment for Kubernetes

Quick Overview

Octant is a web-based, highly extensible platform for developers to better understand the complexity of Kubernetes clusters. It provides a visual interface for viewing and managing Kubernetes resources, offering real-time updates and plugin support for customization.

Pros

  • Highly extensible with a plugin system for adding custom functionality
  • Provides a user-friendly interface for visualizing and managing Kubernetes resources
  • Offers real-time updates and live data streaming from the cluster
  • Supports multiple contexts and namespaces for easy navigation between different environments

Cons

  • Project is archived and no longer actively maintained
  • May lack support for newer Kubernetes features or versions
  • Limited documentation and community support due to its archived status
  • Potential security risks due to lack of updates and maintenance

Getting Started

To get started with Octant (when it was still active):

  1. Download the latest release from the GitHub releases page
  2. Extract the archive and move the octant binary to a directory in your PATH
  3. Run the following command to start Octant:
octant
  1. Open a web browser and navigate to http://localhost:7777 to access the Octant dashboard

Note: As the project is archived, it's recommended to explore alternative, actively maintained Kubernetes dashboard solutions for production use.

Competitor Comparisons

6,327

📦 Find and install kubectl plugins

Pros of krew

  • Focused specifically on Kubernetes plugin management, making it more specialized and potentially easier to use for kubectl plugin users
  • Actively maintained and part of the Kubernetes SIGs ecosystem, ensuring ongoing support and updates
  • Lightweight and easy to install, with minimal dependencies

Cons of krew

  • Limited to kubectl plugin management, while Octant offers a broader Kubernetes dashboard and visualization capabilities
  • Lacks a graphical user interface, which Octant provides for easier navigation and visualization of Kubernetes resources
  • May require more manual configuration and command-line usage compared to Octant's more user-friendly interface

Code Comparison

Octant (Go):

func (co *ClusterOverview) Content(ctx context.Context, options Options) (component.ContentResponse, error) {
    // ... (code for generating cluster overview content)
}

krew (Go):

func Install(paths environment.KrewPaths, plugin Plugin, version string) error {
    // ... (code for installing a kubectl plugin)
}

Both projects use Go, but their focus differs. Octant's code primarily deals with generating UI components and visualizations, while krew focuses on plugin management operations.

10,890

Customization of kubernetes YAML configurations

Pros of Kustomize

  • Actively maintained and part of the Kubernetes SIG ecosystem
  • Focused on customizing Kubernetes manifests, providing a powerful templating solution
  • Integrated into kubectl, allowing for seamless use within Kubernetes workflows

Cons of Kustomize

  • Limited to Kubernetes manifest customization, lacking broader cluster visualization features
  • Requires a steeper learning curve for users unfamiliar with Kubernetes concepts
  • Command-line focused, without a built-in graphical interface for easier navigation

Code Comparison

Kustomize example:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml

Octant example (plugin development):

func handleAction(request *action.ActionRequest) error {
    // Plugin logic here
    return nil
}

Summary

Kustomize is a specialized tool for Kubernetes manifest customization, offering powerful templating capabilities and integration with kubectl. It's actively maintained but has a steeper learning curve and lacks visualization features. Octant, while archived, provided a more comprehensive cluster visualization tool with a graphical interface. The code examples highlight their different focuses: Kustomize on manifest customization and Octant on plugin-based cluster interaction.

14,267

General-purpose web UI for Kubernetes clusters

Pros of Dashboard

  • Official Kubernetes project with strong community support and regular updates
  • Web-based UI accessible through a browser, requiring no local installation
  • Provides a comprehensive overview of cluster resources and workloads

Cons of Dashboard

  • Requires additional setup for secure access and authentication
  • Limited customization options compared to Octant's plugin system
  • May have performance issues with very large clusters or complex deployments

Code Comparison

Octant (Go):

func (d *Describer) Describe(ctx context.Context, namespace string, options Options) (component.ContentResponse, error) {
    // Implementation details
}

Dashboard (TypeScript):

export class ResourceListComponent implements OnInit, OnDestroy {
  // Component logic
}

Both projects use different languages and architectures. Octant is built with Go and focuses on a desktop application approach, while Dashboard is a web-based solution using TypeScript and Angular.

Octant offers a plugin system for extensibility, allowing developers to create custom views and functionality. Dashboard, being web-based, provides a more accessible interface but with less flexibility for customization.

Dashboard is actively maintained as an official Kubernetes project, ensuring compatibility with the latest Kubernetes versions. Octant, being archived by VMware, may not receive updates or support for newer Kubernetes features.

22,461

Lens - The way the world runs Kubernetes

Pros of Lens

  • Active development and regular updates
  • Extensive feature set for Kubernetes cluster management
  • Cross-platform support (Windows, macOS, Linux)

Cons of Lens

  • Requires installation and system resources
  • Steeper learning curve for new users
  • Some advanced features require a paid subscription

Code Comparison

Octant (Go):

func (d *Describer) Describe(ctx context.Context, namespace string, options Options) (component.ContentResponse, error) {
    // Implementation details
}

Lens (TypeScript):

export class ClusterStore {
  @observable kubeConfigPath: string;
  @observable contextName: string;
  @observable clusterVersion: string;

  // Methods and other properties
}

Summary

Octant and Lens are both Kubernetes management tools, but they differ in approach and features. Octant is a web-based dashboard, while Lens is a desktop application. Lens offers a more comprehensive set of features and active development, but it comes with a steeper learning curve and potential resource overhead. Octant, being archived, may be simpler to use but lacks ongoing updates and support. The code comparison shows Octant using Go for backend operations, while Lens utilizes TypeScript for its desktop application structure.

26,434

🐶 Kubernetes CLI To Manage Your Clusters In Style!

Pros of k9s

  • Lightweight and fast terminal-based UI, ideal for quick operations
  • Real-time resource monitoring and management
  • Extensive keyboard shortcuts for efficient navigation and actions

Cons of k9s

  • Limited graphical visualization compared to Octant's web-based interface
  • Less extensible plugin system
  • Steeper learning curve for users unfamiliar with terminal-based tools

Code Comparison

k9s (main.go):

func main() {
    cmd.Execute()
}

Octant (main.go):

func main() {
    ctx, cancel := context.WithCancel(context.Background())
    defer cancel()

    if err := cmd.Execute(ctx); err != nil {
        log.Fatal(err)
    }
}

Both projects use a similar structure for their main entry point, with k9s having a simpler implementation. Octant includes context handling and error logging, which may provide more robust error management.

k9s focuses on providing a terminal-based interface for Kubernetes cluster management, offering real-time updates and quick actions through keyboard shortcuts. It's lightweight and fast but may be less intuitive for users accustomed to graphical interfaces.

Octant, on the other hand, offers a web-based dashboard with more extensive visualization capabilities and a plugin system for extensibility. However, it may be considered heavier and slower compared to k9s for quick operations.

The choice between the two depends on user preferences, workflow requirements, and the need for graphical representations versus terminal efficiency.

17,333

Declarative Continuous Deployment for Kubernetes

Pros of Argo CD

  • Active development and maintenance, with regular updates and releases
  • Robust GitOps-based continuous delivery solution for Kubernetes
  • Large and active community support

Cons of Argo CD

  • Steeper learning curve for beginners
  • More complex setup and configuration compared to Octant

Code Comparison

Argo CD (Go):

func (s *Server) ListApps(ctx context.Context, q *application.ApplicationQuery) (*appv1.ApplicationList, error) {
    apps, err := s.appLister.List(labels.Everything())
    if err != nil {
        return nil, err
    }
    return s.filterApps(apps, q), nil
}

Octant (TypeScript):

export function listApps(ctx: Context): Promise<Application[]> {
  return ctx.k8sClient.listApps().then((apps) => {
    return apps.filter((app) => app.metadata.namespace === ctx.namespace);
  });
}

Additional Notes

Octant is archived and no longer maintained, while Argo CD is actively developed. Argo CD focuses on continuous delivery for Kubernetes, whereas Octant was a dashboard for visualizing Kubernetes resources. Argo CD has a more specific use case and offers more advanced features for GitOps workflows, while Octant provided a more general-purpose dashboard for cluster management.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

VMware has ended active development of this project, this repository will no longer be updated.

Logo

Build Status GitHub release License CII Best Practices

A highly extensible platform for developers to better understand the complexity of Kubernetes clusters.

Octant is a tool for developers to understand how applications run on a Kubernetes cluster. It aims to be part of the developer's toolkit for gaining insight and approaching complexity found in Kubernetes. Octant offers a combination of introspective tooling, cluster navigation, and object management along with a plugin system to further extend its capabilities.

Features

  • Resource Viewer

    Graphically visualize relationships between objects in a Kubernetes cluster. The status of individual objects are represented by color to show workload performance.

  • Summary View

    Consolidated status and configuration information in a single page aggregated from output typically found using multiple kubectl commands.

  • Port Forward

    Forward a local port to a running pod with a single button for debugging applications and even port forward multiple pods across namespaces.

  • Log Stream

    View log streams of pod and container activity for troubleshooting or monitoring without holding multiple terminals open.

  • Label Filter

    Organize workloads with label filtering for inspecting clusters with a high volume of objects in a namespace.

  • Cluster Navigation

    Easily change between namespaces or contexts across different clusters. Multiple kubeconfig files are also supported.

  • Plugin System

    Highly extensible plugin system for users to provide additional functionality through gRPC. Plugin authors can add components on top of existing views.

Usage

Octant demo

Installation

Package (Linux only)

  1. Download the .deb or .rpm from the releases page.

  2. Install with either dpkg -i or rpm -i respectively.

Windows

Chocolatey

  1. Install using chocolatey with the following one-liner:

    choco install octant --confirm
    

Scoop

  1. Add the extras bucket.

    scoop bucket add extras
    
  2. Install using scoop.

    scoop install octant
    

macOS

Homebrew

  1. Install using Homebrew with the following one-liner:

    brew install octant
    

Download a Pre-built Binary (Linux, macOS, Windows)

  1. Open the releases page from a browser and download the latest tarball or zip file.

  2. Extract the tarball or zip where X.Y is the release version:

    $ tar -xzvf ~/Downloads/octant_0.X.Y_Linux-64bit.tar.gz
    octant_0.X.Y_Linux-64bit/README.md
    octant_0.X.Y_Linux-64bit/octant
    
  3. Verify it runs:

    $ ./octant_0.X.Y_Linux-64bit/octant version
    

Nightly Builds

Nightly builds of Octant are available for download.

Please note that nightly builds maybe less stable than our tagged releases and are intended to allow early access to preview upcoming features and for plugin authors who want access to the latest plugin APIs.

Browse nightly builds

Getting Started

Before starting Octant, make sure you have access to a healthy cluster. If kubectl is installed, test using kubectl cluster-info.

Start running Octant:

$ octant

Octant should immediately launch your default web browser on 127.0.0.1:7777.

Octant uses the default web browser on the system to act as the UI client. In the future Octant will ship with a UI.

For setting extra configuration such as what kubeconfig or context to use at startup, refer to the documentation.

Supported Versions

Octant versions follow Semantic Versioning where a given version number represents MAJOR.MINOR.PATCH.

Patch releases address bug fixes, regressions, and small enhancements.

Minor releases contain security fixes, API changes, and significant enhancements such as UI changes or new components.

Major releases contain breaking changes that are not guaranteed to be backwards compatible. Octant versions before 1.0 should not be considered stable and API may change between minor releases.

Supported Version Skew

Version of Octant are compiled against a version of client-go.

Octant follows an n±1 policy for versions of Kubernetes similar to kubectl. For example, Octant 0.16.0 uses the Kubernetes 1.19 client. So version 0.16.0 can be used with Kubernetes 1.18, 1.19, and 1.20.

Plugins

Plugins are a core part of Octant in the Kubernetes ecosystem. A plugin can read objects and allows users to add components to Octant's views.

An example plugin can be found in cmd/octant-sample-plugin and installed to the default plugin path with go run build.go install-test-plugin.

Some plugins can be found on GitHub in the #octant-plugin topic (tag).

Documentation for plugin components can be found in the Plugins section of the documentation.

Discussion

Feature requests, bug reports, and enhancements are welcome. Contributors, maintainers, and users are encouraged to collaborate through these communication channels:

Contributing

Contributors will need to sign a DCO (Developer Certificate of Origin) with all changes. We also ask that a changelog entry is included with your pull request. Details are described in our contributing documentation.

See our hacking guide for getting your development environment setup.

See our roadmap for tentative features in a 1.0 release.

License

Octant is available under the Apache License, Version 2.0