This provides an extension integration with Docker Desktop to run k9s quickly and easily through the Docker Desktop interface.

Overview

k9s extension for Docker Desktop

This provides an extension integration with Docker Desktop to allow k9s quickly and easily through the Docker Desktop interface.

k9s

Prerequisites

In order to run this extension, you must have Docker Desktop 4.8.0 or later installed.

If you would like to contribute or modify the extension, there are additional requirements. This extension is comprised Go and React JavaScript code. Building the extension can be done using containerized build tools, but you may want to install development environments for these tools.

Runtime Requirements:

Development Recommendations:

Docker Extension CLI Setup

The docker extension cli is provided by default on the current versions of Docker Desktop. If you're running an older version you'll manually need to configure the docker extension cli, see:

https://docs.docker.com/desktop/extensions-sdk

Note: The build steps assume that the Docker Extensions CLI has been installed. While docker-extension can be called directly, the installation target assumes it has been added as a CLI plugin and can be called as docker extension.

If you have downloaded the docker-extension binary from their Releases page, follow these steps to have it recognized as a CLI plugin under docker:

mkdir -p ~/.docker/cli-plugins
cp docker-extension ~/.docker/cli-plugins/

Enable kubernetes and docker extensions

In Docker Desktop,

  1. Go to Preferences -> Kubernetes -> Check "Enable Kubernetes".
  2. Go to Preferences -> Extensions -> Check "Enable Docker Extensions".

Three ways to run extension

Running unpublished extension

Users can run the command below to install the extension on their machines.

docker extension install spurin/k9s-dd-extension:latest

Running published extension

The standard way to get extensions for Docker Desktop is by using the Docker Marketplace. This will install officially released versions of the extension. Should it be accepted upon the marketplace, the process is as follows -

Go to Dashboard -> Add Extensions -> Click on Marketplace tab -> Search for k9s -> Click on Install

Or Building and Installing extension

If you are making local changes and would like to try them out, you will need to follow these steps:

  1. From a terminal, navigate to k9s-dd-extension root directory.

  2. Run the following command to build and install the local extension after kubernetes and docker are running:

    make build-install

Navigate to extension

From the Docker Dashboard you can now navigate to the Extensions section. It should now list k9s as one of the available extensions. Click on k9s from the list and you should be presented with the k9s UI, preconfigured with access to the docker-desktop kubernetes context.

Thanks!

loft

This extension wouldn't be possible without the amazing efforts of loft and their open sourced Vcluster Docker Desktop Extension. The team at loft were able to solve a necessary problem, i.e. how to access a working kubeconfig that relates to the Docker Desktop in-built Kubernetes Server. Around this, they also built a handy control loop in React/Typescript that checks whether or not Kubernetes is running. This extension re-uses the control loops and adds a volume share to the kubeconfig file, therefore permitting access to other containers (in this case, k9s).

Great efforts loft! 🚀

You might also like...

Visual scraper interface, exports to puppeteer script which you can run anywhere.

Jawa - Visual Scraper Visual scraper interface, exports to puppeteer script which you can run anywhere. You can try it out here https://jawa.kickass.c

Nov 16, 2022

Run a command, watch the filesystem, stop the process on file change and then run the command again...

hubmon Run a command, watch the filesystem, stop the process on file change and then run the command again... Install You can install this command lin

Jul 30, 2022

Personal Blog - a project developed with Angular for the front-end interface and Wordpress for the back-end API served with Docker containers

Personal Blog - a project developed with Angular for the front-end interface and Wordpress for the back-end API served with Docker containers

PersonalBlog This project was generated with Angular CLI version 13.0.1. Front-end Interface Development server Run ng serve or ng serve --configurati

Oct 5, 2022

Open source app to beautify screenshots, quickly and easily

Codename: Pika What it does Lets you quickly beautify screenshots by adding rounded corners, background colors, shadows and more. You can copy the bea

Dec 29, 2022

A comprehensive collection of useful tools developed with the help of Ethers.js to interact with the Ethereum Blockchain to develop great DeFi apps as quickly and easily as possible.

hudi-packages-ethersfactory How to install Installing with npm For more information on using npm check out the docs here. npm i @humandataincome/ether

Mar 30, 2022

Chat View let's you quickly and easily create elegant Chat UIs in your Markdown Files.

Chat View let's you quickly and easily create elegant Chat UIs in your Markdown Files.

Obsidian Chat View Plugin Chat View let's you quickly and easily create elegant Chat UIs in your Markdown Files. Usage Every chat message must be pref

Dec 27, 2022

A JavaScript plugin that provides snapping functionality to a set of panels within your interface.

PanelSnap A JavaScript library that provides snapping functionality to a set of panels within your interface. Introduction PanelSnap is a framework ag

Dec 16, 2022

The app's backend is written in Python (Flask) and for search it uses Elasticsearch. I used this app as candidate application for learning out how to build, run and deploy a multi-container environment (docker-compose).

foodtrucks-app-docker-compose The app's backend is written in Python (Flask) and for search it uses Elasticsearch. I used this app as candidate applic

Oct 24, 2022
Comments
  • Support multiple K8s contexts

    Support multiple K8s contexts

    Some developers may create Kubernetes clusters differently, like using kind, e.g.:

    kind create cluster

    That will spin up a a container running in a random port:

    CONTAINER ID   IMAGE                                      COMMAND                  CREATED         STATUS                   PORTS                       NAMES
    060dd9cc63bc   kindest/node:v1.21.1                       "/usr/local/bin/entr…"   2 hours ago     Up 9 minutes             127.0.0.1:58516->6443/tcp   kind-control-plane
    

    It'd be great if the k9s container could connect to the kind container.

    opened by felipecruz91 0
Owner
James Spurin
Cloud Engineer / Software Developer | Kubernetes (CKA / CKAD) | Technical Author (Dive Into Ansible) | DevOps | Automation
James Spurin
The iofod SDK provides developers with the ability to interact with the main iofod interface within the Web worker, enabling rapid development of iofod extensions through the SDK.

iofod-sdk English | 简体中文 The iofod SDK provides developers with the ability to interact with the main iofod interface within the Web worker, enabling

iofod, Inc. 47 Oct 17, 2022
Journeys is a django based community-focused website that allows users to bookmark URLs (through chrome extension) and share their journeys through timelines.

Journeys is a django based community-focused website that allows users to bookmark URLs (through chrome extension) and share their journeys through timelines. A timeline is a collection of links that share a common topic or a journey of building and learning something new. Users can create timelines, share them publicly, and explore resources.

Students' Web Committee 14 Jun 13, 2022
Connect Web Integration illustrates the integration of Connect-Web in various JS frameworks and tooling

Connect Web Integration Connect Web Integration is a repository of example projects using Connect-Web with various JS frameworks and tooling. It provi

Buf 43 Dec 29, 2022
Docker Extension to backup and restore docker volumes.

vackup-docker-extension This repository contains a Docker Extension that backups Docker volumes. This extension is purely a demonstration of how it'd

Felipe Cruz Martinez 34 Dec 28, 2022
MidJourney is an AI text-to-image service that generates images based on textual prompts. It is often used to create artistic or imaginative images, and is available on Discord and through a web interface here.

Midjourney MidJourney is an AI text-to-image service that generates images based on textual prompts. It is often used to create artistic or imaginativ

Andrew Tsegaye 8 May 1, 2023
✨ A command-line interface for quickly sharing code snippets of your local files

?? snipli ✨ A command-line interface for quickly sharing code snippets for your local files Usage Commands Usage $ npm install -g snipli $ snipli COMM

Kira 146 Nov 3, 2022
✨ A command-line interface for quickly sharing code snippets of your local files

?? snipli ✨ A command-line interface for quickly sharing code snippets for your local files Usage Commands Usage $ npm install -g snipli $ snipli COMM

buidler's hub 127 May 11, 2022
Convert arrays to bitmask representations to quickly operate with them through bitwise operations. (uses JSBI)

Bitmask Set (JSBI) Convert arrays to bitmask representations to quickly operate with them through bitwise operations. In general, this approach can be

codescrum 4 Sep 7, 2022
Using a RPI 3b+ to create a PT camera accessible through Windows browser and controllable through MQTT

web-camera_PT A Web flask server converts the MJPEG stream from RPI to JPG img using opencv, then display in browser. Controls added to move Camera in

null 11 Dec 20, 2022