一位同事意外地使用同一流量回购中的现有分支和集群在他们的新集群上运行flux bootstrap...
后,我不得不在集群上重新运行flux bootstrap...
。
运行kubectl get gitrepositories -A
没有错误-
flux-system flux-system ssh://git@git.group.net:7999/psmgsbb/flux.git stored artifact for revision 'master/252f6416c034bb67f06cc3e413e66704bc6b1069'
但是,当我运行flux logs --level=error
时,我现在看到了这些错误
error ImagePolicy/post-processing-master-branch-policy.flux-system : Reconciler error cannot determine latest tag for policy version list argument cannot be empty
error HelmRelease/post-processing.post-processing-dev : Reconciler error previous release attempt remediation failed
error ImageRepository/post-processing-repository.flux-system : Reconciler error auth for "myacr.azurecr.io" not found in secret flux-system/psbombb-image-acr-auth-cc8mg5tk84
关于上面的秘密,我运行:
kubcetl get secret -n flux-system psbombb-image-acr-auth-cc8mg5tk84 -oyaml
这给了我
apiVersion: v1
data:
.dockerconfigjson:
ewoJImRhdGEiOiAie1xuICBcI...<redacted>
kind: Secret
解码为
"data": "{
"auths": {
"myacr.azurecr.io": {
"auth":
"YTNlMTNlOGItYWQwNi00M2IzLTkyMjgtMjA0ZmQ2ODllMD<redacted>"
}
}
}"
所以myacr.azurecr.io
上面的ACR确实与秘密中的ACR相匹配。这个错误对我来说没有意义吗?
Reconciler error auth for "myacr.azurecr.io" not found in secret flux-system/psbombb-image-acr-auth-cc8mg5tk84
所以,基本上,你知道为什么在流量引导之后,调和现在失败了吗?
谢谢
当flux bootstrap...
在集群上意外运行时,它将kustoize升级到0.30.2版本。这导致了写入Kubernetes的加密dockerconfigjson机密的格式出现问题。
当dockerconfigjson内容被base64解码时,到处都是换行符,这似乎导致了协调器错误,从而无法找到ACR引用->mycr.azurecr.io
我将gotk-components.yaml
kustosize控制器版本恢复到意外flux boostrap...
之前的kustosize版本,即从v03.2
恢复到v022.3
。
一旦使用正确的dockerconfigjson格式重新创建了Kubernetes Secret,协调就开始正常工作。