in controllers/helpers.go [103:132]
func (r *EtcdadmClusterReconciler) generateEtcdadmConfig(ctx context.Context, ec *etcdv1.EtcdadmCluster, cluster *clusterv1.Cluster) (*corev1.ObjectReference, error) {
owner := metav1.OwnerReference{
APIVersion: etcdv1.GroupVersion.String(),
Kind: "EtcdadmCluster",
Name: ec.Name,
UID: ec.UID,
}
bootstrapConfig := &etcdbootstrapv1.EtcdadmConfig{
ObjectMeta: metav1.ObjectMeta{
Name: names.SimpleNameGenerator.GenerateName(ec.Name + "-"),
Namespace: ec.Namespace,
Labels: EtcdLabelsForCluster(cluster.Name, ec.Name),
OwnerReferences: []metav1.OwnerReference{owner},
},
Spec: ec.Spec.EtcdadmConfigSpec,
}
bootstrapRef := &corev1.ObjectReference{
APIVersion: etcdbootstrapv1.GroupVersion.String(),
Kind: "EtcdadmConfig",
Name: bootstrapConfig.GetName(),
Namespace: bootstrapConfig.GetNamespace(),
UID: bootstrapConfig.GetUID(),
}
if err := r.Client.Create(ctx, bootstrapConfig); err != nil {
return nil, errors.Wrap(err, "Failed to create etcdadm bootstrap configuration")
}
return bootstrapRef, nil
}