前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8sailor - 02 使用 cobra 管理命令与参数集群连接参数

k8sailor - 02 使用 cobra 管理命令与参数集群连接参数

作者头像
老麦
发布2022-12-24 09:55:19
2150
发布2022-12-24 09:55:19
举报
文章被收录于专栏:Go与云原生Go与云原生

tag: https://github.com/tangx/k8sailor/tree/feat/01-cobra-command

为了更加方便的管理配置文件的来源, 这里使用 cobra 进行命令行构建

效果如下

代码语言:javascript
复制
cd cmd/k8sailor && go run .
k8s 管理平台

Usage:
  k8sailor [flags]

Flags:
      --config string   k8s 配置授权文件 (default "./k8sconfig/config.yml")
  -h, --help            help for k8sailor

编码

变量管理

cmd/k8sailor/global 目录中管理 全局 变量。

其中,定义一个 CmdFlag 结构体管理所有 cobra flags。

代码语言:javascript
复制
type CmdFlags struct {
	Config string `flag:"config" usage:"k8s 配置授权文件" persistent:"true"`
}

var Flags = &CmdFlags{
	Config: "./k8sconfig/config.yml",
}

cobra

cmd/k8sailor/cmd 中管理所有 cobra 命令。root.go

在代码中使用了 cobrautils 库帮助管理 flag 绑定。

代码语言:javascript
复制
func init() {
	cobrautils.BindFlags(rootCmd, global.Flags)
}

启动

在 main.go 调用 cmd/root.go 的启动函数。运行结果如上所示。

目录结构

代码语言:javascript
复制
# tree 
.
├── README.md
├── cmd
│   └── k8sailor
│       ├── cmd
│       │   └── root.go
│       ├── global
│       │   └── config.go
│       ├── k8sconfig
│       │   └── config.yml
│       └── main.go
├── go.mod
└── go.sum

6 directories, 9 files
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 熊猫云原生Go 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编码
    • 变量管理
      • cobra
        • 启动
        • 目录结构
        相关产品与服务
        命令行工具
        腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档