in operator/pkg/utils/keypairs/reconciler.go [46:73]
func (c *Provider) ReconcileCertsFor(ctx context.Context, controlPlane *v1alpha1.ControlPlane, certsTreeMap CertTree) error {
for rootCA, leafCerts := range certsTreeMap {
// Get the existing CA from API server in the form of a Kube secret object,
// if not found or invalid generate a new one
caSecret, err := c.GetOrGenerateSecret(ctx, rootCA)
if err != nil {
return fmt.Errorf("creating root CA %v, %w", rootCA.Name, err)
}
secretObjs := []*v1.Secret{caSecret}
for _, leafCert := range leafCerts {
leafCert.CASecret = caSecret
// Get the existing cert and key from API server, if not found or
// invalid generate a new one
secretObj, err := c.GetOrGenerateSecret(ctx, leafCert)
if err != nil {
return fmt.Errorf("creating secret objects %v, %w", leafCert.Name, err)
}
secretObjs = append(secretObjs, secretObj)
}
for _, secret := range secretObjs {
if err = c.kubeClient.EnsureCreate(ctx, object.WithOwner(controlPlane, secret)); err != nil {
return fmt.Errorf("ensuring secret %v, %w", secret.Name, err)
}
}
}
zap.S().Debugf("[%v] Keypairs reconciled", controlPlane.ClusterName())
return nil
}