#kubernetes #kubeconfig

app kcfg

KUBECONFIG 操作 CLI

5 个版本

0.2.1 2022 年 12 月 1 日
0.2.0 2022 年 12 月 1 日
0.1.2 2021 年 10 月 22 日
0.1.1 2021 年 10 月 20 日
0.1.0 2021 年 10 月 14 日

#469Web 编程

自定义许可协议

38KB
815

kcfg

pipeline status unsafe forbidden MIT licensed Crates.io dependency status

有时,你需要处理很多 kubeconfig 文件。kcfg 就是为了帮助你而存在的!

安装

通过 Cargo

cargoinstall kcfg

Homebrew

brewinstall kcfg

命令

可用命令

  • fork 复制当前的 KUBECONFIG 文件并将其用作 KUBECONFIG
  • completions 为你的 shell 生成补全脚本
  • help 打印此消息或给定子命令的帮助信息
  • init 在当前路径相关环境中初始化
  • use 查找并使用正确的 KUBECONFIG

fork

Fork 命令会复制当前的 $KUBECONFIG 文件,并使用它作为 $KUBECONFIG。此命令将打印用于导出新文件作为新 $KUBECONFIG 环境变量的命令。

标志

  1. -o --overwrite 复制的配置将不会在文件名中使用任何时间戳,这意味着它将覆盖以前的配置副本。

  2. -n --no-export 程序将不会尝试将复制的文件路径设置为新的 $KUBECONFIG 环境变量。

选项

  1. -p --target-path 复制配置的目标目录。

初始化

在当前路径相关环境中初始化。此命令将在标准输出上打印初始化脚本。

参数

命令接受以下值

  • common(默认值):程序将输出一个常见的初始化脚本
  • bash:程序将输出一个 bash 初始化脚本
  • zsh:程序将输出一个 zsh 初始化脚本

选项

  1. -p --path

定义自定义初始化路径。否则将使用当前路径。

使用

递归解析kubeconfig目录(默认为~/.kube),并根据参数检索匹配的配置文件。程序将输出命令,将找到的文件作为新的KUBECONFIG环境变量导出。

参数

命令接受筛选参数以找到正确的文件。

选项

  1. -d --directory

允许指定自定义的kubeconfig目录,而不是默认的~/.kube

完成脚本(灵感来自rustup文档)

命令:kcfg completions

启用Bash、Fish、Zsh或PowerShell的Tab补全。脚本输出到stdout,允许将输出重定向到任意文件。文件放置的位置取决于您使用的shell和操作系统。您的特定配置可能还会决定这些脚本需要放置的位置。

以下是Unix和类似操作系统(如GNU/Linux)下三种支持的shell的一些常见配置。

BASH

完成文件通常存储在/etc/bash_completion.d/,用于系统范围内的命令,但也可以存储在~/.local/share/bash-completion/completions,用于特定用户的命令。

运行命令

$ mkdir -p ~/.local/share/bash-completion/completions

$ kcfg completions bash >> ~/.local/share/bash-completion/completions/kcfg

这会安装完成脚本。您可能需要注销并重新登录shell会话,以便更改生效。

BASH(macOS/Homebrew)

Homebrew将bash完成文件存储在Homebrew目录中。使用已安装的bash-completion brew公式,运行命令

$ mkdir -p $(brew --prefix)/etc/bash_completion.d

$ kcfg completions bash > $(brew --prefix)/etc/bash_completion.d/kcfg.bash-completion

FISH

Fish完成文件通常存储在$HOME/.config/fish/completions

运行命令

$ mkdir -p ~/.config/fish/completions

$ kcfg completions fish > ~/.config/fish/completions/kcfg.fish

这会安装完成脚本。您可能需要注销并重新登录shell会话,以便更改生效。

ZSH

ZSH完成通常存储在任何在您的$fpath变量中列出的目录。要使用这些完成,您必须将这些生成的脚本添加到这些目录之一,或者将您的自定义脚本添加到该列表。

如果您不确定使用哪个目录,添加自定义目录通常是最佳选择。首先创建目录;在这个例子中,我们将在$HOME目录中创建一个隐藏目录

$ mkdir ~/.zfunc

然后,在您的.zshrc文件中,在compinit之前添加以下行

fpath+=~/.zfunc

现在,您可以使用以下命令安装完成脚本

$ kcfg completions zsh > ~/.zfunc/_kcfg

然后,您必须注销并重新登录,或者只需运行

$ exec zsh

以使新完成生效。

自定义位置

或者,您可以将这些文件保存到您选择的任何位置,例如$HOME目录中的自定义目录。这样做将需要您在登录脚本中添加适当的指令,例如使用source。请参考您shell的文档,了解如何添加此类指令。

POWERSHELL

Powershell完成脚本需要PowerShell v5.0+(随Windows 10提供,但也可以单独下载Windows 7或8.1的版本)。

首先,检查是否已设置配置文件

PS C:> Test-Path $profile

如果上述命令返回 False,请运行以下命令

PS C:> New-Item -path $profile -type file -force

现在打开由 $profile 提供的文件(如果您使用了 New-Item 命令,它将是 ${env:USERPROFILE}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

接下来,我们可以将完成文件保存到我们的配置文件中,或者保存到一个单独的文件并在配置文件中引用它。要将完成文件保存到我们的配置文件中,请使用以下命令:

PS C:> kcfg completions powershell >> ${env:USERPROFILE}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

依赖项

~4.5–6MB
~108K SLoC