ArgoCD 私人回购声明式方法

Posted

技术标签:

【中文标题】ArgoCD 私人回购声明式方法【英文标题】:ArgoCD Private Repo Declarative Approach 【发布时间】:2021-12-16 17:19:16 【问题描述】:

我正在尝试使用带有 SSH 的私有存储库来部署带有 ArgoCD 的示例留言簿 Helm 应用程序。我收到以下错误。

错误

rpc error: code = Unknown desc = error creating SSH agent: "SSH agent requested but SSH_AUTH_SOCK not-specified"

我尝试了两种 URL 格式:

git@github.com:myOrg/myrepo.git 

ssh://git@github.com/myOrg/myrepo.git

两者都不起作用并且都产生相同的错误。当我登录到 GUI 并手动配置 repo 时,复制并粘贴我的有效私钥,但是当使用下面的 YAML 进行部署时,它不会

Application.yaml

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: helm-guestbook
  namespace: argocd
  finalizers:
  - resources-finalizer.argocd.argoproj.io
spec:
  destination:
    namespace: helm-guestbook
    server:  .Values.spec.destination.server 
  project: default
  source:
    path: helm-guestbook
    repoURL:  .Values.spec.source.repoURL 
    targetRevision:  .Values.spec.source.targetRevision 

值.yaml

spec:
  destination:
    server: https://kubernetes.default.svc
  source:
    repoURL: git@github.com:myOrg/myrepo.git
    targetRevision: HEAD

RepoCreds.yaml

apiVersion: v1
kind: Secret
metadata:
  name: private-repo
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  url:  .Values.spec.source.repoURL 
  sshPrivateKey: |
    -----BEGIN OPENSSH PRIVATE KEY-----
    ...
 
    -----END OPENSSH PRIVATE KEY-----

【问题讨论】:

【参考方案1】:

原来是版本不匹配。我正在使用 ArgoCD Operator 安装 ArgoCD。我使用的是最新的 ArgoCD Operator 版本 (v.0.0.15)。默认情况下,它正在拉取早期版本的 Argo。我更新了 ArgoCD 资源以指定最新的 ArgoCD 版本图像标签 (v2.1.6)。

【讨论】:

以上是关于ArgoCD 私人回购声明式方法的主要内容,如果未能解决你的问题,请参考以下文章

GitHub Actions - 将公共回购克隆到我的私人回购?

在 Github 上公开分享私人回购的一部分

Capistrano 和 GitHub 私人回购 - 权限被拒绝(公钥)

私人回购 - 去 1.13 - `go mod ..` 失败:ping “sum.golang.org/lookup” .. 验证包 .. 410 不见了

买断式回购与质押式回购有啥区别

买断式回购和质押式回购是啥意思?