Argo CD重启后加载失败:server.secretkey缺失问题求助
解决Argo CD重启后「server.secretkey is missing」错误
问题描述
Argo CD重启后无法正常加载,server日志中反复出现「server.secretkey is missing」的警告与错误,使用Argo Helm 3.21.0版本,预期该密钥由Argo Server自动生成,但未找到其声明位置。
相关日志:
time="2023-01-08T06:48:55Z" level=info msg="Starting configmap/secret informers" time="2023-01-08T06:48:55Z" level=info msg="Configmap/secret informer synced" time="2023-01-08T06:48:55Z" level=info msg="Initialized server signature" time="2023-01-08T06:48:55Z" level=info msg="Initialized admin password" time="2023-01-08T06:48:55Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:48:55Z" level=info msg="Starting configmap/secret informers" time="2023-01-08T06:48:55Z" level=info msg="configmap informer cancelled" time="2023-01-08T06:48:55Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:48:55Z" level=info msg="secrets informer cancelled" time="2023-01-08T06:48:55Z" level=info msg="Configmap/secret informer synced" time="2023-01-08T06:48:55Z" level=info msg="Starting configmap/secret informers" time="2023-01-08T06:48:55Z" level=info msg="configmap informer cancelled" time="2023-01-08T06:48:55Z" level=info msg="Configmap/secret informer synced" time="2023-01-08T06:48:55Z" level=info msg="secrets informer cancelled" time="2023-01-08T06:48:55Z" level=info msg="Creating client app (argo-cd)" time="2023-01-08T06:48:55Z" level=info msg="argocd v2.1.2+7af9dfb serving on port 8080 (url: https://argo.jgjhg.hgg.tech, tls: false, namespace: argocd, sso: true)" time="2023-01-08T06:48:55Z" level=info msg="0xc000d7f380 subscribed to settings updates" time="2023-01-08T06:48:55Z" level=info msg="Starting rbac config informer" time="2023-01-08T06:48:55Z" level=info msg="RBAC ConfigMap 'argocd-rbac-cm' added" time="2023-01-08T06:49:22Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:50:37Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:51:22Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:51:49Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:52:22Z" level=warning msg="Unable to parse updated settings: server.secretkey is missing" time="2023-01-08T06:58:55Z" level=info msg="Alloc=14201 TotalAlloc=64664 Sys=74065 NumGC=13 Goroutines=139" time="2023-01-08T07:03:36Z" level=info msg="received unary call /version.VersionService/Version" grpc.method=Version grpc.request.claims=null grpc.request.content= grpc.service=version.VersionService grpc.start_time="2023-01-08T07:03:36Z" span.kind=server system=grpc time="2023-01-08T07:03:36Z" level=error msg="finished unary call with code Unknown" error="server.secretkey is missing" grpc.code=Unknown grpc.method=Version grpc.service=version.VersionService grpc.start_time="2023-01-08T07:03:36Z" grpc.time_ms=20.524 span.kind=server system=grpc
解决方案
1. 检查argocd-secret Secret状态
执行命令查看Argo CD命名空间下的核心Secret:
kubectl get secret argocd-secret -n argocd
如果该Secret不存在,或者其中缺少server.secretkey字段,需要手动补充。
2. 手动生成并注入server.secretkey
- 生成32位十六进制密钥:
openssl rand -hex 32 - 将生成的密钥编码为Base64,并更新到
argocd-secret中:
或者直接编辑Secret:kubectl patch secret argocd-secret -n argocd -p '{"data": {"server.secretkey": "'$(echo -n "替换为生成的密钥" | base64 -w0)'"}}'
在kubectl edit secret argocd-secret -n argocddata字段中添加server.secretkey,值为生成密钥的Base64编码结果。
3. 验证Helm配置是否干扰自动生成
检查你的Helm values.yaml文件,确认是否存在server.secretKey配置项:
- 如果该配置被设置为
null或空值,会阻止Argo CD自动生成密钥,建议删除该配置项,让Helm自动管理。 - 重新执行Helm升级确保配置生效:
helm upgrade argocd argo/argo-cd -n argocd -f your-values.yaml
4. 重启Argo CD Server Pod
更新Secret后,重启Server Pod加载新配置:
kubectl rollout restart deployment argocd-server -n argocd
内容的提问来源于stack exchange,提问作者Boaz Lowenstein
相关产品推荐
相关产品推荐

