KDash - A fast and simple dashboard for Kubernetes

Overview

KDash - A fast and simple dashboard for Kubernetes

Note: This is a beta version

 _  __ ___             _
| |/ /|   \  __ _  ___| |_
| ' < | |) |/ _` |(_-<| ' \
|_|\_\|___/ \__,_|/__/|_||_|

A simple terminal dashboard for Kubernetes built with Rust

UI

Installation

Homebrew (Mac & Linux)

brew tap kdash-rs/kdash
brew install kdash

# If you need to be more specific, use:
brew install kdash-rs/kdash/kdash

Install script

TODO

Manual

Binaries for macOS, Linux and Windows are available on the releases page

Docker

Run KDash as a Docker container by mounting your KUBECONFIG. For example the below for default path

docker run --rm -it -v ~/.kube/config:/root/.kube/config deepu105/kdash

You can also clone this repo and run make docker to build a docker image locally and run it using above command

Cargo

If you have Cargo installed then you install KDash from crates.io

cargo install kdash

You can also clone the repo and run cargo run or make to build and run the app

Note:: On Linux you might need to have package xorg-dev (Debian/Ubuntu) or xorg-x11-server-devel (Fedora) or equivalent installed for the copy to clipboard features to work

USAGE:

Press ? while running the app to see keybindings

FLAGS:

  • -h, --help: Prints help information
  • -V, --version: Prints version information
  • -t, --tick-rate : Set the tick rate (milliseconds): the lower the number the higher the FPS.
  • -p, --poll-rate : Set the network call polling rate (milliseconds, should be multiples of tick-rate): the lower the number the higher the network calls.

Features & Todos

  • CLI Info
  • Resource Watch (configurable polling interval with -p flag)
    • Pods
    • Nodes
    • Namespace
    • Services
    • Containers
    • ConfigMaps
    • StatefulSets
    • ReplicaSets
    • Deployments
  • Describe resources
    • Pods
    • Nodes
    • Services
    • Deployments
    • ConfigMaps
    • StatefulSets
    • ReplicaSets
    • select/copy output
    • as YAML
  • Stream logs/events
    • Containers
    • Services
    • Deployments
    • StatefulSets
    • select/copy output
  • Context
    • Context info
    • Node metrics
    • Context watch
    • Change namespace?
    • Context switch
  • Resources utilizations
  • Dark/Light themes
  • Custom keymap
  • Custom theme
  • Tests, a lot of them :)

Screenshots

Overview screen

UI

Container logs screen (light theme)

UI

Pod describe screen (light theme)

UI

Contexts screen

UI

Utilization screen

UI

Libraries used

How does this compare to K9S?

K9S is a beast compared to this as it offers way more features including CRUD actions.

KDash only offers a view of most used resources with a focus on speed and UX. Hence the UI/UX is designed to be more user friendly and easier to navigate with contextual help everywhere and a tab system to switch between different resources easily.

At least for now there are no plans to add CRUD for resources

Licence

MIT

Authors

Comments
  • kdash Crash Report

    kdash Crash Report

    name = 'kdash'
    operating_system = 'unix:Manjaro'
    crate_version = '0.2.6'
    explanation = '''
    Panic occurred in file '~/.cargo/registry/src/github.com-1ecc6299db9ec823/tui-0.16.0/src/widgets/gauge.rs' at line 204
    '''
    cause = 'Ratio should be between 0 and 1 inclusively.'
    method = 'Panic'
    backtrace = '''
    
       0: 0x557115c570f2 - kdash::main::hbb7d0b00cd09bc2d
       1: 0x557115b1a0b3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h37718759770cb226
       2: 0x557115c62eb7 - main
       3: 0x7f02e4dc4b25 - __libc_start_main
       4: 0x557115a9325e - _start
       5:        0x0 - <unresolved>'''
    
    opened by omid 21
  • kdash fails to start due to tcp connect error on Windows

    kdash fails to start due to tcp connect error on Windows

    Describe the bug I use k3d to bootstrap a k8s cluster locally. When I now open kdash, the error HyperError: error trying to connect: tcp connect error: Die angeforderte Adresse ist in diesem Kontext ungültig. (os error 10049) appears after some seconds and I'm not able to see the resource overview. With other tools (kubectl, k9s) I can connect to the cluster without any problems.

    Also, sometimes when I press Ctrl-C to close kdash after the previous mentioned error appeared, I get the following error in the cmd:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    OSError: [Errno 22] Invalid argument
    Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1252'>
    OSError: [Errno 22] Invalid argument
    

    To Reproduce

    1. Create a local k8s cluster using k3d cluster create
    2. Start kdash using the kdashcommand
    3. Wait a few seconds
    4. See error

    Expected behavior The resource overview loads.

    Screenshots image

    https://user-images.githubusercontent.com/53078027/117637156-d5c09e00-b181-11eb-9e29-f66cbd362169.mp4

    Desktop (please complete the following information):

    • OS and OS version: Windows 10
    • Terminal name and version: Windows CMD
    • Shell name and version: -
    • Kubectl Client Version: v1.21.0
    • Kubectl Server Version: v1.20.5+k3s1
    • KDash version: 0.0.8

    Additional context

    kubectl version
    Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"windows/amd64"}
    Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.5+k3s1", GitCommit:"355fff3017b06cde44dbd879408a3a6826fa7125", GitTreeState:"clean", BuildDate:"2021-03-31T06:21:52Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"}
    
    k3d version
    k3d version v4.4.1
    k3s version v1.20.5-k3s1 (default)
    
    Windows 
    opened by Cyneath 10
  • Crash while viewing utilization of K8s cluster

    Crash while viewing utilization of K8s cluster

    Describe the bug A clear and concise description of what the bug is. Application crashed while viewing utilization of K8s cluster

    To Reproduce Steps to reproduce the behavior or a screencast

    1. Open application
    2. Go to utilization tab
    3. Play a bit with the grouping <g>
    4. ???
    5. Crash

    Expected behavior A clear and concise description of what you expected to happen. The application does not crash

    Screenshots If applicable, add screenshots to help explain your problem. image

    Desktop (please complete the following information):

    • OS and OS version: [e.g. macOS 10.1 / Fedora 34 / WIndows 10]
    Ubuntu 20.04 LTS
    Linux artemis 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    
    • Terminal name and version [e.g. Tilix, Yakuake, Gnome Terminal, Konsole, iTerm, Windows CMD]
    Windows terminal using WSL2, though accessing a remote server over SSH
    
    • Shell name and version [e.g. bash, zsh, fish, powershell]
    GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
    
    • Kubectl Client Version [e.g. 1.19]
    Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.5", GitCommit:"6b1d87acf3c8253c123756b9e61dac642678305f", GitTreeState:"clean", BuildDate:"2021-03-18T01:10:43Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
    
    • Kubectl Server Version [e.g. 1.19]
    Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.5", GitCommit:"6b1d87acf3c8253c123756b9e61dac642678305f", GitTreeState:"clean", BuildDate:"2021-03-18T01:02:01Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
    
    • KDash version [e.g. 0.0.8] 0.1.2

    Additional context Add any other context about the problem here. Produced logs file:

    tobias@artemis:~/kubernetes/manifests/system$ cat /tmp/report-310a52bb-fffa-45d3-bbfa-c68aa9d110aa.toml
    name = 'kdash'
    operating_system = 'unix:Ubuntu'
    crate_version = '0.1.2'
    explanation = '''
    Panic occurred in file '/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/tui-0.15.0/src/widgets/table.rs' at line 359
    '''
    cause = 'index out of bounds: the len is 171 but the index is 171'
    method = 'Panic'
    backtrace = '''
    
       0: 0x7f29ada79c82 - <unresolved>
       1: 0x7f29add1dcae - <unresolved>
       2: 0x7f29adbeae03 - <unresolved>
       3: 0x7f29adccf1d2 - <unresolved>
       4: 0x7f29adbcc548 - <unresolved>
       5: 0x7f29adb6e092 - <unresolved>
       6: 0x7f29adbdf629 - <unresolved>
       7: 0x7f29adcc1a14 - <unresolved>
       8: 0x7f29adc509ea - <unresolved>
       9: 0x7f29adb2f8c3 - <unresolved>
      10: 0x7f29adc31f0d - <unresolved>
      11: 0x7f29ae16cfa9 - <unresolved>
      12: 0x7f29adc510e2 - <unresolved>
    
    blocked_by_external_lib 
    opened by TobiasDeBruijn 9
  • Log streaming is blocking network thread even after break

    Log streaming is blocking network thread even after break

    When streaming container logs, the network thread gets blocked for any subsequent calls (when going back and selecting a new container). Seems like when the try_next on the logs stream waits for a server response (incase of a container that doesn't produce next line of log yet) the thread gets blocked

    log_streaming_method: https://github.com/kdash-rs/kdash/blob/main/src/network/kube_api.rs#L394

    bug help wanted 
    opened by deepu105 9
  • Instance type label in Nodes tab

    Instance type label in Nodes tab

    It would be great to have the instance-type label in the Nodes tab. This will help when you navigate between multiple cluster environments where you have different instance types.

    node.kubernetes.io/instance-type: "m3.medium" - https://kubernetes.io/docs/reference/labels-annotations-taints/#nodekubernetesioinstance-type

    opened by shinusuresh 8
  • "cargo install kdash" k8s-openapi error

    Describe the bug Cannot install/build with cargo install kdash. Fails on running k8s-openapi.

    To Reproduce Steps to reproduce the behavior or a screencast

    1. cargo install kdash
    2. See error

    Expected behavior Builds and installs.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS and OS version: Windows / WSL / Arch
    • Terminal name and version: st
    • Shell name and version: zsh
    • Kubectl Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.4", GitCommit:"b695d79d4f967c403a96986f1750a35eb75e75f1", GitTreeState:"archive", BuildDate:"2021-11-18T21:20:32Z", GoVersion:"go1.17.3", Compiler:"gc", Platform:"linux/amd64"}
    • Kubectl Server Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.11-eks-f17b81", GitCommit:"f17b810c9e5a82200d28b6210b458497ddfcf31b", GitTreeState:"clean", BuildDate:"2021-10-15T21:46:21Z", GoVersion:"go1.15.15", Compiler:"gc", Platform:"linux/amd64"}
    • KDash version: v0.3.0

    Additional context: I've seen #104 and #111. I assume this is a new instance of a similar issue since those were fixed.

    opened by valorl 8
  • "cargo install kdash" fails during compilation

    Describe the bug Executing cargo install kdash to install the v0.2.3 crate fails during compilation

    To Reproduce Steps to reproduce the behavior:

    1. Execute cargo install kdash

    Expected behavior Installation of the crate

    Screenshots The following is output during the install:

    error: failed to run custom build command for `k8s-openapi v0.13.0`
    
    Caused by:
      process didn't exit successfully: `/tmp/cargo-installJLFrYi/release/build/k8s-openapi-405af67896caa110/build-script-build` (exit status: 101)
      --- stderr
      thread 'main' panicked at '
      None of the v1_* features are enabled on the k8s-openapi crate.
    
      The k8s-openapi crate requires a feature to be enabled to indicate which version of Kubernetes it should support.
    
      If you're using k8s-openapi in a binary crate, enable the feature corresponding to the minimum version of API server that you want to support. It may be possible that your binary crate does not directly depend on k8s-openapi. In this case, add a dependency on k8s-openapi, then enable the corresponding feature.
    
      If you're using k8s-openapi in a library crate, add a dev-dependency on k8s-openapi and enable one of the features there. This way the feature will be enabled when buildings tests and examples of your library, but not when building the library itself. It may be possible that your library crate does not directly depend on k8s-openapi. In this case, add a dev-dependency on k8s-openapi, then enable the corresponding feature.
    
      Library crates *must not* enable any features in their direct dependency on k8s-openapi, only in their dev-dependency. The choice of Kubernetes version to support should be left to the final binary crate, so only the binary crate should enable a specific feature. If library crates also enable features, it can cause multiple features to be enabled simultaneously, which k8s-openapi does not support.
    
      If you want to restrict your library crate to support only a single specific version or range of versions of Kubernetes, please use the k8s_* version-specific macros to emit different code based on which feature gets enabled in the end.', /home/matt/.cargo/registry/src/github.com-1ecc6299db9ec823/k8s-openapi-0.13.0/build.rs:9:42
      note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    warning: build failed, waiting for other jobs to finish...
    error: failed to compile `kdash v0.2.3`, intermediate artifacts can be found at `/tmp/cargo-installJLFrYi`
    

    Desktop (please complete the following information):

    • OS and OS version: Ubuntu 20.04
    • Terminal name and version: Kitty
    • Shell name and version: bash
    • KDash version: v0.2.3

    Additional context Cargo looks to be retrieving a new version of the k8s-openapi crate than what kdash states via the Cargo.toml file. Which looks to be due to other dependencies requiring the newer version of the crate.

    opened by wintermi 7
  • Dark theme: the blue font color is barely visible

    Dark theme: the blue font color is barely visible

    Is your feature request related to a problem? Please describe. The color chosen for "KDash - A simple Kubernetes dashboard" and others is barely visible on a black screen.

    Describe the solution you'd like Use white or something else that has good contrast.

    (awesome tool, btw)

    opened by sed-i 6
  • "Error from network dispatch channel closed"

    Describe the bug A clear and concise description of what the bug is.

    I see Error from network dispatch channel closed when I launch kdash, this is printed repeatedly on the screen. Is this because of configuration? I'm running Kubernetes using Azure Kubernetes Service.

    To Reproduce Steps to reproduce the behavior or a screencast

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS and OS version: [e.g. macOS 10.1 / Fedora 34 / WIndows 10]
    • Terminal name and version [e.g. Tilix, Yakuake, Gnome Terminal, Konsole, iTerm, Windows CMD]
    • Shell name and version [e.g. bash, zsh, fish, powershell]
    • Kubectl Client Version [e.g. 1.19]
    • Kubectl Server Version [e.g. 1.19]
    • KDash version [e.g. 0.0.8]

    Additional context Add any other context about the problem here.

    need-reproduction 
    opened by velvia 6
  • Crash on exit

    Crash on exit

    Describe the bug Application crashes when exiting via the ESC key.

    To Reproduce Steps to reproduce the behavior or a screencast

    1. Open application
    2. Hit the ESC key
    3. Crash

    Expected behavior Gracefully exit the application

    Desktop (please complete the following information):

    • OS and OS version: RHEL 8.4
    • Terminal name and version: kitty
    • Shell name and version: bash 4.4.20
    • Kubectl Client Version: 1.20.5
    • Kubectl Server Version: 1.20.5
    • KDash version: 0.2.0
    opened by wintermi 5
  • Add input sanitization setup

    Add input sanitization setup

    This adds a sanitize_obj fn in utils that is supposed to be used with the raw input from kube and used to initialise k8s_obj for each model. This can only be sensibly done when we have ownership of the object (it's weird to do it mutably at every render), so we have modified the input pipeline to have ownership over the resource when constructing and doing the clearing of undesired properties then. In particular, we have:

    • added From<k8s_openapi::SomeType> for OurKubeType and used where possible
    • removed KubeResouce::from_api from the trait (replaced by From impl)
    • made all From impls take ownership of the objects (rather than taking a ref)
    • add utils::sanitize_obj fn that filters out managedFields from metadata of a resource
    • use utils::sanitize_obj on the input of all the From impls

    There was no reason not to take ownership AFAIKT. It only required moving to IntoIterator over Iterator and with that change we were able to use the new sanitize_obj fn during the ::from calls.

    One negative side-effect (that may be able to be cleaned up) is the requirement to tell what type we are using From from... I.e. we need to import all the k8s_openapi types into the scope of kube_api.rs.

    Closes #294

    opened by clux 4
  • Bump tokio from 1.21.2 to 1.24.0

    Bump tokio from 1.21.2 to 1.24.0

    Bumps tokio from 1.21.2 to 1.24.0.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.24.0

    The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

    Fixed

    • rt: improve native AtomicU64 support detection (#5284)

    Added

    • rt: add configuration option for max number of I/O events polled from the OS per tick (#5186)
    • rt: add an environment variable for configuring the default number of worker threads per runtime instance (#4250)

    Changed

    • sync: reduce MPSC channel stack usage (#5294)
    • io: reduce lock contention in I/O operations (#5300)
    • fs: speed up read_dir() by chunking operations (#5309)
    • rt: use internal ThreadId implementation (#5329)
    • test: don't auto-advance time when a spawn_blocking task is running (#5115)

    #5186: tokio-rs/tokio#5186 #5294: tokio-rs/tokio#5294 #5284: tokio-rs/tokio#5284 #4250: tokio-rs/tokio#4250 #5300: tokio-rs/tokio#5300 #5329: tokio-rs/tokio#5329 #5115: tokio-rs/tokio#5115 #5309: tokio-rs/tokio#5309

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    Changed

    • runtime: yield_now defers task until after driver poll (#5223)
    • runtime: reduce amount of codegen needed per spawned task (#5213)
    • windows: replace winapi dependency with windows-sys (#5204)

    ... (truncated)

    Commits
    • dfe252d chore: prepare Tokio v1.24.0 release (#5353)
    • 21b233f test: bump version of async-stream (#5347)
    • 7299304 Merge branch 'tokio-1.23.x' into master
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • 9241c3e chore: prepare Tokio v1.18.4 release
    • 699573d net: fix named pipes server configuration builder
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump openssl from 0.10.42 to 0.10.45

    Bump openssl from 0.10.42 to 0.10.45

    Bumps openssl from 0.10.42 to 0.10.45.

    Commits
    • 7df5686 Release openssl v0.10.45
    • f32af9f Release openssl-sys v0.9.80
    • deac6b7 Merge pull request #1763 from CfirTsabari/cfirtsabari/deperecated-functions-1745
    • 27edce9 Mark Openssl # deprecated functions
    • f0ff8a7 Merge pull request #1762 from wiktor-k/fix-broken-relaxation
    • 45e5dce Expose Cipher::cipher_final_unchecked
    • 71013f7 Fix output buffer check introduced in #1733
    • 64ba480 Merge pull request #1761 from vishwin/master
    • 0d8d502 Expose EVP_PKEY_security_bits for LibreSSL 3.6.0 and later
    • e01fbac openssl-sys: add LibreSSL 3.6.0 to cfgs
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump duct from 0.13.5 to 0.13.6

    Bump duct from 0.13.5 to 0.13.6

    Bumps duct from 0.13.5 to 0.13.6.

    Commits
    • 2db6ed6 version 0.13.6
    • 523ab13 Add LICENSE to duct_sh crate
    • 8baa85e Replace tempdir with tempfile, as the tempfile crate have superceded the temp...
    • 8615ae7 use Vec<OsString> in macro to avoid unnecessary allocation
    • 4f6b7a9 update shared_child to 1.0.0
    • e409363 update os_pipe to 1.0.0
    • bf26f62 Fix typos
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump kube from 0.74.0 to 0.77.0

    Bump kube from 0.74.0 to 0.77.0

    Bumps kube from 0.74.0 to 0.77.0.

    Release notes

    Sourced from kube's releases.

    0.77.0

    Highlights

    This release saw numerous improvements across various parts of the codebase with lots of help from external contributors. Look for improvements in error handling, client exec behaviour, dynamic object conversion, certificate handling, and last, but not least; lots of enhancements in the config module. Huge thanks to everyone who contributed!

    Config Enhancements

    Kubeconfigs relying on ExecConfig for auth should now work with a lot more cases (with improvements to script interactivity, cert passing, env-drop, and windows behaviour). We further aligned our Kubeconfig parsing with client-go's behaviour, and also exposed Kubeconfig::merge. Finally, we now pass Config::tls_server_name through to the Client, which has let us include a better rustls workaround for the long-standing ip issue (enabled by default).

    What's Changed

    Added

    Changed

    Removed

    Fixed

    New Contributors

    Full Changelog: https://github.com/kube-rs/kube/compare/0.76.0...0.77.0

    0.76.0

    Highlights

    #[derive(CustomResource)] now supports schemas with untagged enums

    Expanding on our existing support for storing Rust's struct enums in CRDs, Kube will now try to convert #[serde(untagged)] enums as well. Note that if the same field is present in multiple untagged variants then they must all have the same shape.

    Removed deprecated try_flatten_* functions

    ... (truncated)

    Changelog

    Sourced from kube's changelog.

    0.77.0 / 2022-12-15

    Highlights

    This release saw numerous improvements across various parts of the codebase with lots of help from external contributors. Look for improvements in error handling, client exec behaviour, dynamic object conversion, certificate handling, and last, but not least; lots of enhancements in the config module. Huge thanks to everyone who contributed!

    Config Enhancements

    Kubeconfigs relying on ExecConfig for auth should now work with a lot more cases (with improvements to script interactivity, cert passing, env-drop, and windows behaviour). We further aligned our Kubeconfig parsing with client-go's behaviour, and also exposed Kubeconfig::merge. Finally, we now pass Config::tls_server_name through to the Client, which has let us include a better rustls workaround for the long-standing ip issue (enabled by default).

    What's Changed

    Added

    Changed

    Removed

    Fixed

    0.76.0 / 2022-10-28

    Highlights

    #[derive(CustomResource)] now supports schemas with untagged enums

    Expanding on our existing support for storing Rust's struct enums in CRDs, Kube will now try to convert #[serde(untagged)] enums as well. Note that if the same field is present in multiple untagged variants then they must all have the same shape.

    Removed deprecated try_flatten_* functions

    These have been deprecated since 0.72, and are replaced by the equivalent WatchStreamExt methods.

    What's Changed

    Added

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • kdash crashes after install

    kdash crashes after install

    Describe the bug kdash crashes after install.

    To Reproduce Install via brew, then launch kdash as per instructions and it crashes, screenshot below.

    Screenshots image

    Desktop (please complete the following information):

    • macOS 12.6
    • default Terminal in macOS
    • bash: 3.2.57(1)-release
    • kubectl client v1.22.15
    • kubectl server v1.23.13+IKS
    • kdash 0.3.5

    Additional context

    Add any other context about the problem here. crash.toml.zip

    opened by jeeva86 4
  • Bump k8s-openapi from 0.15.0 to 0.16.0

    Bump k8s-openapi from 0.15.0 to 0.16.0

    Bumps k8s-openapi from 0.15.0 to 0.16.0.

    Release notes

    Sourced from k8s-openapi's releases.

    v0.16.0

    k8s-openapi

    • BREAKING CHANGE: Added support for Kubernetes 1.25 under the v1_25 feature.

    • FEATURE: All spec types now implement a deep-merge API via a DeepMerge trait impl with a fn merge_from(&mut self, other: Self) method. This is useful for builder-like operations.

    Corresponding Kubernetes API server versions:

    • v1.18.20
    • v1.19.16
    • v1.20.15
    • v1.21.14
    • v1.22.14
    • v1.23.11
    • v1.24.5
    • v1.25.1

    k8s-openapi-codegen-common

    • No changes.

    k8s-openapi-derive

    • BREAKING CHANGE: #[derive(CustomResourceDefinition)] no longer generates a list type alias. For example, when applied to struct FooSpec, previously the custom derive would generate pub type FooList = k8s_openapi::List<Foo>; It no longer does this, in accordance with the main k8s-openapi crate where such aliases were removed back in v0.7.0

    • FEATURE: The generated custom resource type will implement k8s_openapi::DeepMerge if the impl_deep_merge custom derive attribute is used. Note that this requires you to implement k8s_openapi::DeepMerge on the spec type yourself; the custom derive does not do that.

    Changelog

    Sourced from k8s-openapi's changelog.

    v0.16.0 (2022-09-15)

    k8s-openapi

    • BREAKING CHANGE: Added support for Kubernetes 1.25 under the v1_25 feature.

    • FEATURE: All spec types now implement a deep-merge API via a DeepMerge trait impl with a fn merge_from(&mut self, other: Self) method. This is useful for builder-like operations.

    Corresponding Kubernetes API server versions:

    • v1.18.20
    • v1.19.16
    • v1.20.15
    • v1.21.14
    • v1.22.14
    • v1.23.11
    • v1.24.5
    • v1.25.1

    k8s-openapi-codegen-common

    • No changes.

    k8s-openapi-derive

    • BREAKING CHANGE: #[derive(CustomResourceDefinition)] no longer generates a list type alias. For example, when applied to struct FooSpec, previously the custom derive would generate pub type FooList = k8s_openapi::List<Foo>; It no longer does this, in accordance with the main k8s-openapi crate where such aliases were removed back in v0.7.0

    • FEATURE: The generated custom resource type will implement k8s_openapi::DeepMerge if the impl_deep_merge custom derive attribute is used. Note that this requires you to implement k8s_openapi::DeepMerge on the spec type yourself; the custom derive does not do that.


    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(v0.3.6)
Owner
null
A simple 2D plotting library that outputs graphs to SVG that can be styled using CSS.

Poloto graphs can be stylized using css either directly in the SVG, or from inside of html with an embedded svg. The latter allows the user to dynamically match the svg to their website's theme.

Ken Reed 119 Dec 13, 2022
A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀

Plotters - A Rust drawing library focus on data plotting for both WASM and native applications ?? ?? ?? Plotters is drawing library designed for rende

Hao Hou 2.7k Jan 4, 2023
A small charting/visualization tool and partial vega implementation for Rust

Gust A charting library for rust! Disclaimer This is still very much a work in progress! APIs are very unstable and subject to change. Contributions a

Samuel Resendez 128 Dec 24, 2022
Swash is a pure Rust, cross-platform crate that provides font introspection, complex text shaping and glyph rendering.

Swash is a pure Rust, cross-platform crate that provides font introspection, complex text shaping and glyph rendering. Goals This crate aims to

Chad Brokaw 398 Dec 14, 2022
below is an interactive tool to view and record historical system data.

A time traveling resource monitor for modern Linux systems

Facebook Incubator 824 Dec 31, 2022
This is an implementation of an Iced backend for Plotters, for both native and wasm applications.

plotters-iced This is an implementation of an Iced backend for Plotters, for both native and wasm applications. This backend has been optimized as for

joylei 54 Dec 14, 2022
📝 Web-based, reactive Datalog notebooks for data analysis and visualization

?? Web-based, reactive Datalog notebooks for data analysis and visualization

Eric Zhang 486 Dec 28, 2022
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
H2O Open Source Kubernetes operator and a command-line tool to ease deployment (and undeployment) of H2O open-source machine learning platform H2O-3 to Kubernetes.

H2O Kubernetes Repository with official tools to aid the deployment of H2O Machine Learning platform to Kubernetes. There are two essential tools to b

H2O.ai 16 Nov 12, 2022
A simple, terminal-based Erlang dashboard written in Rust

erldash A simple, terminal-based Erlang dashboard. erldash connects to an Erlang node using the dynamic node name feature (since OTP-23) to collect me

Takeru Ohta 85 Dec 8, 2022
Leptos Axum Prisma starter with Admin dashboard and SSR/SPA website

LAPA - Leptos Axum Prisma starter with Admin dashboard and SSR/SPA website Motivation I want to have practical full-stack setup to build websites and

Alexi Chepura 2 Jul 10, 2023
Standalone analytics provider and realtime dashboard designed for self-hosting.

Stats Stats is a high-performance, standalone analytics provider designed for self-hosting, enabling the collection and viewing of event data from web

Udara Jay 120 Mar 23, 2024
Golang terminal dashboard

termui termui is a cross-platform and fully-customizable terminal dashboard and widget library built on top of termbox-go. It is inspired by blessed-c

Zack Guo 12.3k Jan 3, 2023
A Dashboard for your Lab

Veza - A Dashboard for your Lab Veza is an browser based application that displays any live data in a well-organized way. It aims to be a freely confi

Daniel Hartig 5 Dec 3, 2021
🦑 GitHub Dashboard

ghboard ?? GitHub dashboard written in Rust ?? , made using Dioxus SSR ?? , hosted in Shuttle ?? and powered by the GitHub GraphQL API ?? . [ ⚠️ Work

Marc Espín 24 Jul 11, 2023
A simple containerized application manage system like Kubernetes, but written in Rust

rMiniK8s A simple dockerized application management system like Kubernetes, written in Rust, plus a simple FaaS implementation. Course Project for SJT

markcty 15 Jul 8, 2023
Northstar is a horizontally scalable and multi-tenant Kubernetes cluster provisioner and orchestrator

Northstar Northstar is a horizontally scalable and multi-tenant Kubernetes cluster provisioner and orchestrator. Explore the docs » View Demo · Report

Lucas Clerisse 1 Jan 22, 2022
Detects orphan configmaps and secrets in a Kubernetes cluster

KubExplorer Warning: Proof of concept. Feedback is much welcome. Discovers and prints out any Configmaps and Secrets not linked to any of the followin

Pavel Pscheidl 56 Oct 21, 2022
Rust Kubernetes client and controller runtime

kube-rs Rust client for Kubernetes in the style of a more generic client-go, a runtime abstraction inspired by controller-runtime, and a derive macro

kube-rs 1.8k Jan 8, 2023