使用声明性 DSL 将 SSH GitHub 存储库添加到 ArgoCD 得到 "authentication required"

Adding an SSH GitHub repository to ArgoCD using declarative DSL gives "authentication required"

我安装了 ArgoCD,想使用声明性 DSL 使用 SSH 访问和 SSH 密钥对添加 GitHub 存储库。

我有的是:

apiVersion: v1
data:
  sshPrivateKey: <my private ssh key base64 encoded>
  url: <url base64 encoded>
kind: Secret
metadata:
  annotations:
    meta.helm.sh/release-name: argocd-config
    meta.helm.sh/release-namespace: argocd
  creationTimestamp: "2021-06-30T12:39:35Z"
  labels:
    app.kubernetes.io/managed-by: Helm
    argocd.argoproj.io/secret-type: repo-creds
  name: repo-creds
  namespace: argocd
  resourceVersion: "364936"
  selfLink: /api/v1/namespaces/argocd/secrets/repo-creds
  uid: 8ca64883-302b-4a41-aaf6-5277c34dfbfc
type: Opaque
---
apiVersion: v1
data:
  url: <url base64 encoded>
kind: Secret
metadata:
  annotations:
    meta.helm.sh/release-name: argocd-config
    meta.helm.sh/release-namespace: argocd
  creationTimestamp: "2021-06-30T12:39:35Z"
  labels:
    app.kubernetes.io/managed-by: Helm
    argocd.argoproj.io/secret-type: repository
  name: argocd-repo
  namespace: argocd
  resourceVersion: "364935"
  selfLink: /api/v1/namespaces/argocd/secrets/argocd-repo
  uid: 09de56e0-3b0a-4032-8fb5-81b3a6e1899e
type: Opaque

我可以使用那个 SSH 密钥对手动连接到那个 GitHub 私有存储库,但是使用 DSL,该存储库不会出现在 ArgoCD GUI 中。

在 argocd-repo-server 的日志中我收到错误:

time="2021-06-30T14:48:25Z" level=error msg="finished unary call with code Unknown" error="authentication required" grpc.code=Unknown grpc.method=GenerateManifest grpc.request.deadline="2021-06-30T14:49:25Z" grpc.service=repository.RepoServerService grpc.start_time="2021-06-30T14:48:25Z" grpc.time_ms=206.505 span.kind=server system=grpc

我用 helm 部署秘密。

所以谁能帮我指出正确的方向?我做错了什么?

我基本上遵循了以下声明性文档:https://argoproj.github.io/argo-cd/operator-manual/declarative-setup/

提前致谢。

此致, rforberger

我不确定 helm,因为我现在正在使用 yaml 文件,然后再进入 helm。您可以在此处查看 Github issue 以配置 helm

的 SSH 密钥

我在处理清单时遇到了这个问题。回购配置应该在 argocd-cm configmap 中。修复是这样的:

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
  namespace: argocd
  labels:
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/part-of: argocd
data:
  repositories: |
    - name: my-test-repo
      url: ssh://git@repo-url/path/to/repo.git
      type: git
      insecure: true.                  // To skip verification
      insecureIgnoreHostKey: true      // to ignore host key for ssh
      sshPrivateKeySecret:
        name: private-repo-creds
        key: sshPrivateKey
---
apiVersion: v1
kind: Secret
metadata:
  name: private-repo-creds
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repo-creds
data:
  sshPrivateKey: <my private ssh key base64 encoded>

而且我不确定文档是否正确,因为我可以看到稳定版的文档有点不同,虽然你的 link 和这个 stable doc link 来自同一个版本