阅读 55

tmax released! 支持自定义参数等重磅功能

tmax v0.1.0 released,在此之前收集了一些用户的意见,针对性地实现了其中呼声比较高的功能,最终的 released 版本除了之前介绍过的 direct modesearch modeinteractive mode 之外,还做了以下工作:

  • direct mode 支持模板参数和自定义参数

    • 自定义参数

      这个功能是首次介绍 tmax 后使用过的用户最想要的功能,因为这样可以不再局限于 tmax 中固定的短命令,在需要参数的时候也能够发挥 tmax 的作用,极大地拓展了 tmax 的使用场景。让我们通过几个 demo 来看下自定义参数的威力:

      首先假设我们在配置文件 ~/.tmax.yaml 中定义了下面的短命令

      现在想看下某个 pod 的简单信息,只需要执行:

      tmax getpod myapp-deploy
      复制代码

      myapp-deploy 就是自定义参数,你甚至可以在后面继续添加参数:

      tmax getpod myapp-deploy -n YOUR_NAMESPACE
      复制代码

      等同于执行 kubectl get pod myapp-deploy -owide -n YOUR_NAMESPACE, 大家可以配合需要的自定义参数自由发挥定制属于自己的 tmax 配置文件。

    • 模板参数

      大家应该注意到了,自定义参数只能在 tmax 命令后面追加,那假如想要在中间添加可变参数就不能用了。比如,你想为一个 k8s 节点打一个污点,而这个污点是你司固定常用的,就要执行 kubectl taint node node-1.1.1.1reserved=mynode:NoSchedule,那节点的名称就会成为一个可变参数,而污点名称又是固定不变的,那最大限度地偷懒,就是只输入节点名称就能完成命令。不要慌,tmax 支持模板参数,对于上面的命令我们可以在 ~/.tmax.yaml 中添加:

      只需执行下面的内容即可完成打污点的命令

      tmax taintnode -n YOUR_NODE_NAME
      复制代码

      或者在模板里你可以配置某个参数的默认值,比如在本地你经常要操作的 k8s namespace 是 test,就可以这样写一个配置,kubectl get pod -owide -n {{.ns | default "test"}}

      执行 tmax getpod myapp-deploy 就等同于 kubectl get pod -owide myapp-deploy -ntest。假如你要访问的 pod 不在 test namespace 下,可以指定 ns: tmax getpod myapp-deploy -ns YOU_NAMESPACE

      大家写过 golang 的应该一眼就看出 {{.n}} 就是 go template ,所以我们称之为模板参数,有了这个功能后,tmax 的可玩性就很高了,一些很复杂的命令可以变得可定制。

  • 优化配置文件的存储格式,重构 tmax add 命令

    配置文件的存储格式以及各字段的含义如下

    现在你可以通过 tmax add group.shortCmd "fullCmd" 的方式来新增一个命令到配置文件,比如:

    tmax add k8s.allpod "kubectl get pod -A"
    复制代码

就将 group 为 k8s ,shortCmd 为 allpod,fullCmd 为 kubectl get pod -A 的内容添加到配置文件了

  • 优化了代码结构

    之前的代码聚焦功能实现,没有注意代码规范和结构,release 版本进行了一些优化。

  • 更快速的安装方式

    • mac os

      brew tap hantmac/tap && brew install --build-from-source tmax
      复制代码
    • linux

      wget https://github.com/hantmac/tmax/releases/download/v0.1.0/tmax_v0.1.0_linux_x86_64.tar.gz && tar -zxvf tmax_v0.1.0_linux_x86_64.tar.gz -C /usr/local/bin && chmod +x /usr/local/bin/tmax
      复制代码
    • windows

      windows 平台未测试,可下载源码自行 make

以上就是本次 tmax v0.1.0 版本的新功能介绍,欢迎大家下载、试用、反馈,在此感谢 Guang Jiong Lou 的 contributions ,他为新功能的设计与实现贡献了大多数代码。

文章分类
开发工具
文章标签