argocd修改用户密码策略
argocd更新admin密码提示如下
Unable to update your password.: New password does not match the following expression: ^.{8,32}$.

可以在 cm argocd-cm 中修改 data.passwordPattern 字段来定义用户密码策略,默认是 ^.{8,32}$ ,即密码是以任意字符开头并且长度为8-32位
说明
^.{1,32}$ 是一个标准的正则表达式,含义是
- 
^表示字符串的开始 - 
.表示任意单个字符(除了换行符) - 
{8,32}是数量限定符,表示前面的模式(任意字符)必须出现至少8次,最多32次 - 
$表示字符串的结束 
还有更复杂的模式 ^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$
- 
^- 表示字符串的开始 - 
(?=.*[a-z])- 这是一个前瞻断言(lookahead assertion),要求密码中必须包含至少一个小写字母(a-z)?=是前瞻断言的标志.*表示任意数量的任意字符[a-z]表示任意一个小写字母
 - 
(?=.*[A-Z])- 前瞻断言,要求密码中必须包含至少一个大写字母(A-Z) - 
(?=.*\\d)- 前瞻断言,要求密码中必须包含至少一个数字(0-9)\\d在正则表达式中表示数字
 - 
(?=.*[@$!%*?&])- 前瞻断言,要求密码中必须包含至少一个特殊字符(@,$,!,%,*,?, 或&) - 
[A-Za-z\\d@$!%*?&]{8,}- 定义允许包含的字符和长度:[A-Za-z\\d@$!%*?&]表示允许大小写字母、数字和指定的特殊字符{8,}表示至少8个字符
 - 
$- 表示字符串的结束 
简单来说,这个密码策略要求
1.密码长度至少为8个字符
2.必须包含至少一个小写字母
3.必须包含至少一个大写字母
4.必须包含至少一个数字
5.必须包含至少一个特殊字符(@, $, !, %, *, ?, 或 &)
6.只允许使用字母、数字和特定的特殊字符
$ k get cm argocd-cm -o yaml
apiVersion: v1
data:
  admin.enabled: "true"
  application.instanceLabelKey: argocd.argoproj.io/instance
  application.sync.impersonation.enabled: "false"
  exec.enabled: "false"
  passwordPattern: ^.{1,32}$
......
修改完cm后会自动生效

