我们目前正在尝试使用 argocd helm 图表 (7.2.0) 在我们的 kubernetes 集群上配置高可用性 ArgoCD 实例来配置我们的应用程序。我们的基础设施位于 AWS 上,并通过用 TypeScript 编写的 AWS CDK 组合在一起。
到目前为止,我们已经成功使用以下 cdk 片段部署了 argocd helm 图表:
const argoCDHelmChart = this.cluster.addHelmChart('argocd-helmchart',
{
repository: 'https://argoproj.github.io/argo-helm',
chart: 'argo-cd',
version: '7.2.0',
namespace: 'argocd',
release: 'argo-cd',
values: {
"redis-ha": { enabled: true },
controller: {
serviceAccount: { create: false },
replicas: 1,
envFrom: [{ secretRef: { name: 'proxy-config' }}]
},
server: {
serviceAccount: { create: false },
autoscaling: { enabled: false, minReplicas: 1 },
envFrom: [{ secretRef: { name: 'proxy-config' }}]
},
repoServer: {
autoscaling: { enabled: false, minReplicas: 1 },
envFrom: [{ secretRef: { name: 'proxy-config' }}]
},
applicationSet: {
replicas: 1,
extraEnvFrom: [{ secretRef: { name: 'proxy-config' }}]
},
},
}
)
但是,当我们尝试使用以下 cli 命令将存储库添加到 argocd 时:
argocd repo add OUR_REPO_URL --server-name argo-cd-argocd-server --username OUR_USERNAME --password OUR_PASSWORD
我们收到以下错误:
FATA[0000] rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: failed to do connect handshake, response: \"HTTP/1.1 403 Forbidden\\r\\nContent-Length: 10\\r\\nContent-Type: text/plain; charset=utf-8\\r\\nDate: Thu, 25 Jul 2024 13:52:19 GMT\\r\\nX-Content-Type-Options: nosniff\\r\\n\\r\\nForbidden\\n\""
我们已经尝试/验证了以下内容:
如果这有什么帮助的话,这些是我们在集群中拥有的 argocd pod:
argo-cd-argocd-application-controller-0
argo-cd-argocd-applicationset-controller-885b744c4-v7pnv
argo-cd-argocd-dex-server-6f99bdb67d-tnf6c
argo-cd-argocd-notifications-controller-5869f85784-pdpll
argo-cd-argocd-redis-secret-init-vgkr6
argo-cd-argocd-repo-server-8679c8c796-69v2q
argo-cd-argocd-server-fcb9d7f76-9kk9j
argo-cd-redis-ha-haproxy-7fb5cb44cc-l4c8m
argo-cd-redis-ha-haproxy-7fb5cb44cc-twrkj
argo-cd-redis-ha-haproxy-7fb5cb44cc-vkqrm
argo-cd-redis-ha-server-0
argo-cd-redis-ha-server-1
argo-cd-redis-ha-server-2
总而言之,我们怀疑 argocd-server pod 无法与 argocd-repo-server pod 进行通信/到达。
如果您能指出这里可能出现的问题,或者我们如何验证 Pod 是否可以相互通信,我们将不胜感激。
尝试使用此命令:
argocd repo add OUR_REPO_URL --name repo-name --insecure-ignore-host-key --ssh-private-key-path ~/.ssh/id_rsa
确保您从配置了 SSH 且可以访问存储库的计算机上运行它。这将使用 ssh 密钥而不是用户名/密码,并且过去对我有用,而用户名/密码总是给我带来访问问题。