in pkg/authority/k8s/client.go [162:203]
func (c *ClientImpl) UpdateAuthorityPublicKey(cert string) bool {
ns, err := c.kubeClient.CoreV1().Namespaces().List(context.TODO(), metav1.ListOptions{})
if err != nil {
logger.Sugar().Warnf("Failed to get namespaces. " + err.Error())
return false
}
for _, n := range ns.Items {
if n.Name == "kube-system" {
continue
}
cm, err := c.kubeClient.CoreV1().ConfigMaps(n.Name).Get(context.TODO(), "dubbo-ca-cert", metav1.GetOptions{})
if err != nil {
logger.Sugar().Warnf("Unable to find dubbo-ca-cert in " + n.Name + ". Will create config map. " + err.Error())
cm = &v1.ConfigMap{
Data: map[string]string{
"ca.crt": cert,
},
}
cm.Name = "dubbo-ca-cert"
_, err = c.kubeClient.CoreV1().ConfigMaps(n.Name).Create(context.TODO(), cm, metav1.CreateOptions{})
if err != nil {
logger.Sugar().Warnf("Failed to create config map for " + n.Name + ". " + err.Error())
return false
} else {
logger.Sugar().Info("Create ca config map for " + n.Name + " success.")
}
}
if cm.Data["ca.crt"] == cert {
logger.Sugar().Info("Ignore override ca to " + n.Name + ". Cause: Already exist.")
continue
}
cm.Data["ca.crt"] = cert
_, err = c.kubeClient.CoreV1().ConfigMaps(n.Name).Update(context.TODO(), cm, metav1.UpdateOptions{})
if err != nil {
logger.Sugar().Warnf("Failed to update config map for " + n.Name + ". " + err.Error())
return false
} else {
logger.Sugar().Info("Update ca config map for " + n.Name + " success.")
}
}
return true
}