func()

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
}