ArgoCD 私有回购声明式方法

ArgoCD Private Repo Declarative Approach

我正在尝试使用带有 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 }}

Values.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-----

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