Kube Tmuxp

Tool to generate tmuxp configs that help to switch between multiple Kubernetes contexts safely.
Alternatives To Kube Tmuxp
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Kubectx14,910
3 months ago26January 11, 202246apache-2.0Go
Faster way to switch between clusters and namespaces in kubectl
Kubie1,492
a month ago21December 08, 202142zlibRust
A more powerful alternative to kubectx and kubens
Vikube.vim190
3 years ago6Vim script
Operating Kubernetes Cluster from Vim, in Vim
Terraform163
6 days ago1apache-2.0HCL
The place to storing Terraform modules of many providers
K8s Scripts78
46 years ago13February 08, 20179apache-2.0Shell
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Kubectl Ctx37
9 months agomitGo
Simple kubectl plugin to display/switch contexts
Kx35
3 months ago5May 29, 2021mitRust
Interactively switch between kubernetes contexts without any external dependencies
Helm Switcher32
2 years ago6July 06, 20212mitGo
CLI tool to help install and switch between versions of Helm for Kubernetes
Kubeswitch27
4 years agomitSwift
MacOS Status Bar App to switch between kubernetes contexts
Kubectx Rs23
3 years ago4July 29, 20172Shell
Switch between Kubernetes contexts 🏎
Alternatives To Kube Tmuxp
Select To Compare


Alternative Project Comparisons
Readme

kube-tmuxp

Build Status

Tool to generate tmuxp configs that help to switch between multiple Kubernetes contexts safely.

Introduction

When working with multiple Kubernetes clusters its painful to switch context using kubectl or kubectx. There are also possibilities of making unintentional changes.

kube-tmuxp solves this by using one preconfigured tmux session per Kubernetes cluster. Each tmux session contains only one Kubernetes context thus preventing accidental context switching inside a session. Contexts can be switched by switching tmux sessions. For example: [tmux prefix] + S.

Given a config similar to config.sample.yaml, kube-tmuxp generates:

  • kube config (Kubernetes context) for each Kubernetes cluster under ~/.kube/configs
  • tmuxp config for each Kubernetes cluster under ~/.tmuxp

The generated tmuxp configs can be used to start preconfigured tmux sessions.

Prerequisites

Install

Homebrew

brew tap thecasualcoder/stable
brew install kube-tmuxp

Manual

git clone https://github.com/thecasualcoder/kube-tmuxp.git
cd kube-tmuxp
make build
cp ./out/kube-tmuxp /usr/local/bin/kube-tmuxp

Generate kubeconfigs and tmuxp configs

  • Copy the sample config (config.sample.yaml)

    cp config.sample.yaml ~/.kube-tmuxp.yaml
    
  • Add your projects and clusters to the copied config

  • Generate kubeconfigs and tmuxp configs

kube-tmuxp gen

Default config path is $HOME/.kube-tmuxp.yaml. If you are using a different path, then use the --config flag to specify that path. Refer kube-tmuxp --help for more details.

Generate kube-tmuxp config file for gcloud

$ kube-tmuxp gcloud-generate --help
Generates configs for kube-tmuxp based on gcloud account

Usage:
  kube-tmuxp gcloud-generate [flags]

Flags:
      --additional-envs strings   Additional envs to be populated
      --all-projects              Skip confirmation for projects
      --apply                    Directly create the tmuxp configs for selected projects
  -h, --help                     help for gcloud-generate
      --project-ids strings       Comma separated Project IDs to which the configurations need to be fetched

Examples:

  1. Interactively select projects:
$ kube-tmuxp gcloud-generate
# this will prompt for the projectIDs selection. Type to filter and select using space
# fuzzy search will work
  1. Specify projectIDs:
$ kube-tmuxp gcloud-generate --projectIDs project1,project2
  1. For all projects:
$ kube-tmuxp gcloud-generate --allProjects
  1. Use env variables in kube-tmuxp:

kube-tmuxp provides four envs: KUBETMUXP_CLUSTER_NAME, KUBETMUXP_CLUSTER_LOCATION, KUBETMUXP_CLUSTER_IS_REGIONAL, GCP_PROJECT_ID. We can pass additional envs also.

$ kube-tmuxp gcloud-generate --additionalEnvs 'NEW_KEY=new_value,NEW_ENV=$HOME,KUBE_CONFIG=$HOME/.kube/configs/$KUBETMUXP_CLUSTER_NAME'
# each tmux session will have 7 envs (4 predefined, 3 additionalEnvs passed as argument)
  1. Directly create the kubeconfigs and tmuxp files (instead of kube-tmuxp config files):
$ kube-tmuxp gcloud-generate --apply

Start a session

tmuxp load my-context-name

Now you will be inside a tmux session preconfigured with Kubernetes context my-context-name.

Handy bash functions

Use the bash functions available here to switch, kill sessions easily. Special thanks to @jskswamy for writing these awesome functions.

Limitations

  • Currently works for Google Kubernetes Engine (GKE) only. However, it can be extended to work with any Kubernetes clusters. Feel free to submit a PR for this.
Popular Kubernetes Projects
Popular Switch Projects
Popular Virtualization Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Kubernetes
Session
Switch
Tmux