V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cloud0001
V2EX  ›  分享创造

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

  •  
  •   cloud0001 · 2021-02-09 10:59:13 +08:00 · 955 次点击
    这是一个创建于 1144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 版本进行了一些优化。

    • 更快速的安装方式

      • 如果你有 golang 的开发环境
       go get -u github.com/hantmac/tmax
      
      • 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,他为新功能的设计与实现贡献了大多数代码。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5343 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:48 · PVG 13:48 · LAX 22:48 · JFK 01:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.