拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Argo CD 命令实战:`argocd repocreds rm` 删除仓库凭证模板全解析

Argo CD 命令实战argocd repocreds rm删除仓库凭证模板全解析【免费下载链接】argo-cdDeclarative Continuous Deployment for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ar/argo-cdargocd repocreds rm是 Argo CD 命令行工具中用于删除仓库凭证模板credential templates的子命令适用于 Git 与 Helm 仓库的批量凭据管理场景。本文以官方命令参考文档 argocd_repocreds_rm.md 为主体骨架结合仓库内 repocreds.go 的真实实现与 private-repositories.md 中的凭证模板使用场景完整讲解该命令的语法、选项、执行流程与最佳实践。读完本文你将掌握如何安全、精准地移除不再使用的仓库凭证模板并理解删除操作在 Argo CD 内部的实际处理逻辑。命令定位凭证模板与repocreds子命令族在 Argo CD 中仓库凭证repository credentials与仓库repository是两个不同的概念。凭证以 URL 前缀的形式存在作为模板为所有匹配该前缀的仓库提供认证信息。例如为前缀https://github.com/argoproj配置一份凭证模板后https://github.com/argoproj/argocd-example-apps等所有位于该前缀之下的、自身未配置凭证的仓库都会自动复用这份凭据详见 private-repositories.md 的 Credential templates 一节。CLI 中管理凭证模板的命令族定义在 repocreds.go 的NewRepoCredsCommand中共包含三个子命令子命令作用源码入口argocd repocreds add新增/更新仓库连接凭证模板NewRepoCredsAddCommandargocd repocreds list列出已配置的凭证模板NewRepoCredsListCommandargocd repocreds rm删除凭证模板本文主题NewRepoCredsRemoveCommandrm命令是凭证模板生命周期的末端操作其完整配套参考见 argocd_repocreds.md、argocd_repocreds_add.md 与 argocd_repocreds_list.md。命令语法与典型示例rm子命令的官方定义源自 argocd_repocreds_rm.mdargocd repocreds rm CREDSURL [flags]参数CREDSURL是待删除凭证模板的 URL 前缀即当初使用add时写入的 URL pattern而非某个具体仓库的完整地址。官方示例# Remove credentials for the repositories with URL https://git.example.com/repos argocd repocreds rm https://git.example.com/repos/支持一次删除多个凭证模板需要特别指出的是虽然官方文档只展示了单个参数但从源码实现看rm的Run函数会遍历args中的全部参数逐个删除repocreds.go。因此你可以一次删除多个模板# 同时删除两个前缀的凭证模板每个都会单独询问确认 argocd repocreds rm https://git.example.com/repos/ https://bitbucket.example.com/scm/如果未提供任何CREDSURL参数命令会打印帮助信息并以退出码 1 结束repocreds.go。选项参数全解rm自身选项-h, --help help for rm继承自父命令的选项rm与repocreds族的其他命令一样继承自全局根命令root.go包括连接方式、认证与集群定位等通用选项选项类型/默认值说明--argocd-context stringstring要使用的 Argo CD server context 名称--auth-token stringstring认证令牌设置此项或环境变量ARGOCD_AUTH_TOKEN--client-crt stringstring客户端证书文件--client-crt-key stringstring客户端证书密钥文件--config string默认/home/user/.config/argocd/configArgo CD 配置文件路径--controller-name string默认argocd-application-controllerApplication controller 名称当通过 Helm chart 安装导致名称标签与默认值不同时设置此项或ARGOCD_APPLICATION_CONTROLLER_NAME--corebool设为 true 时 CLI 直接与 Kubernetes 通信而非经由 Argo CD API server--grpc-webbool启用 gRPC-web 协议当 Argo CD server 位于不支持 HTTP2 的代理之后时有用--grpc-web-root-path stringstring启用 gRPC-web 协议并设置 web 根路径-H, --header strings[]string为所有 CLI 请求附加额外 header可重复使用也支持逗号分隔--http-retry-max intint与 Argo CD server 建立 HTTP 连接的最大重试次数--insecurebool跳过服务端证书与域名校验--kube-context stringstring指定使用的 kube-context--logformat string默认json日志格式取值为json或text--loglevel string默认info日志级别取值为debug、info、warn、error--plaintextbool禁用 TLS--port-forwardbool通过端口转发连接到随机 argocd-server 端口--port-forward-namespace stringstring端口转发使用的命名空间--prompts-enabledbool强制启用/禁用可选交互式提示覆盖本地配置未指定时使用本地配置值默认 false--redis-compress string默认gzip当 application controller 启用了 redis 压缩时启用可选值gzip、none--redis-haproxy-name string默认argocd-redis-ha-haproxyRedis HA Proxy 名称Helm 安装导致名称标签不同时设置此项或ARGOCD_REDIS_HAPROXY_NAME--redis-name string默认argocd-redisRedis deployment 名称设置此项或ARGOCD_REDIS_NAME--repo-server-name string默认argocd-repo-serverRepo server 名称设置此项或ARGOCD_REPO_SERVER_NAME--server stringstringArgo CD server 地址--server-crt stringstring服务端证书文件--server-name string默认argocd-serverAPI server 名称设置此项或ARGOCD_SERVER_NAME说明以上选项均可在argocd repocreds rm --help中查看实际可用性以当前仓库版本的 CLI 为准。若使用--core直连 Kubernetes 模式则无需指定--server。删除流程的源码级剖析rm命令的执行逻辑集中在 NewRepoCredsRemoveCommand整个删除流程可以拆解为四步1. 建立 RepoCreds gRPC 客户端连接conn, repoIf : headless.NewClientOrDie(clientOpts, c).NewRepoCredsClientOrDieWithContext(ctx) defer utilio.Close(conn)命令通过NewRepoCredsClientOrDieWithContext建立到 Argo CD API server 的 gRPC 连接获得repocreds服务的客户端对应pkg/apiclient/repocreds包中的RepoCredsServiceClient。连接在使用完毕后会被延迟关闭。2. 逐项弹出删除确认提示promptUtil : utils.NewPrompt(clientOpts.PromptsEnabled) for _, repoURL : range args { canDelete : promptUtil.Confirm(fmt.Sprintf(Are you sure you want to remove %s? [y/n] , repoURL)) if canDelete { _, err : repoIf.DeleteRepositoryCredentials(ctx, repocredspkg.RepoCredsDeleteRequest{Url: repoURL}) errors.CheckError(err) fmt.Printf(Repository credentials for %s removed\n, repoURL) } else { fmt.Printf(The command to remove %s was cancelled.\n, repoURL) } }这是rm最值得注意的行为默认会为每个 URL 交互式询问确认。删除前会提示Are you sure you want to remove URL? [y/n]输入y才会真正调用DeleteRepositoryCredentials发起删除输入其他内容则打印已取消消息并跳过该项。由于循环遍历args多参数删除时每个模板都会单独确认。提示的启用与否受--prompts-enabled控制该参数用于强制覆盖本地配置若未指定则默认使用配置值 false。若在自动化脚本中执行rm需要留意交互确认对流程的阻断可通过管道输入y或提前评估本地 prompts 配置。3. 调用 API 完成删除确认通过后命令构造RepoCredsDeleteRequest{Url: repoURL}并调用DeleteRepositoryCredentials将删除请求发送至 Argo CD server。服务端最终由util/db层的仓库凭据存储实现承载——repo_creds.go 定义了RepoCredsDB接口当前暴露GetRepoCredsBySecretName实际的增删改查由 repository_secrets.go 中的 secrets 后端完成即凭证模板在集群内以 Kubernetes Secret 的形式持久化存储。4. 输出结果删除成功后打印Repository credentials for URL removed失败则通过errors.CheckError以 FATA 级别日志退出。与add/list配合的完整生命周期凭证模板的管理闭环是增—查—删rm通常与另外两个子命令配合使用# 1) 新增为 URL 前缀建立凭证模板见 argocd_repocreds_add.md argocd repocreds add https://git.example.com/repos/ --username git --password secret # 2) 查看列出全部模板见 argocd_repocreds_list.md argocd repocreds list argocd repocreds list -o json # 亦支持 yaml / url / wide 格式 # 3) 删除移除不再需要的模板 argocd repocreds rm https://git.example.com/repos/list默认以wide表格格式输出列头为URL PATTERN USERNAME SSH_CREDS TLS_CREDSprintRepoCredsTable其中SSH_CREDS与TLS_CREDS以布尔值标识该模板是否携带 SSH 私钥或 TLS 客户端证书-o url则只打印 URL 前缀便于在脚本中直接提取后喂给rm。实践建议与注意事项删除的是前缀模板不是具体仓库rm移除的是 URL 前缀级别的凭证模板。删除后依赖该模板认证的、自身未配置凭证的私有仓库将回到无法认证的状态重新尝试拉取清单时会报类似authentication required的错误参见 private-repositories.md 中的 CLI 会话示例。因此在执行rm前应通过list确认当前模板的 URL 前缀并评估下游依赖。URL 必须与添加时一致DeleteRepositoryCredentials按 URL 精确匹配模板删除时应使用与add时完全一致的前缀字符串包括尾部/等细节否则无法命中目标模板。前缀匹配是最长匹配优先Argo CD 匹配凭证模板时采用 best match 策略最长的前缀胜出见 private-repositories.md。若同一前缀层级存在重叠模板删除其中一个后次长匹配的模板会立即生效规划删除时应考虑这一覆盖关系。交互确认与脚本化rm默认逐项交互确认适合人工操作批量脚本场景下需注意输入处理。删除完成后没有撤销机制如需恢复只能重新add。相关命令参考argocd repocreds — 管理仓库凭证模板父命令argocd repocreds add — 添加仓库连接参数argocd repocreds list — 列出已配置的仓库凭证argocd — Argo CD CLI 根命令Private Repositories — 凭证模板的完整使用场景与匹配规则【免费下载链接】argo-cdDeclarative Continuous Deployment for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ar/argo-cd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门