in pkg/registry/certinjector.go [36:64]
func (ci *CertInjector) UpdateIfNeeded(ctx context.Context, clusterName string) error {
certContent, err := ci.fetchCertContent(ctx, clusterName)
if err != nil {
return fmt.Errorf("fetching CA cert content: %v", err)
}
if certContent == nil {
ci.log.Info("No CA cert content found", "cluster", clusterName)
return nil
}
registryMirrorCred := &corev1.Secret{}
credSecretName := types.NamespacedName{Name: registryMirrorCredName, Namespace: api.PackageNamespace}
if err := ci.k8sClient.Get(ctx, credSecretName, registryMirrorCred); err != nil {
return fmt.Errorf("getting secret %s: %s", credSecretName.String(), err)
}
credCertKey := fmt.Sprintf("%s_ca.crt", clusterName)
if _, ok := registryMirrorCred.Data[credCertKey]; !ok {
ci.log.Info("Updating registry CA cert", "cluster", clusterName, "secret", registryMirrorCredName)
registryMirrorCred.Data[credCertKey] = certContent
if err := ci.k8sClient.Update(ctx, registryMirrorCred, &client.UpdateOptions{}); err != nil {
return fmt.Errorf("updating secret %s: %s", credSecretName.String(), err)
}
} else {
ci.log.Info("CA Cert already updated", "cluster", clusterName)
}
return nil
}