Created
January 2, 2020 21:55
-
-
Save ncdc/8bb821b34c58a5a5bb7c4411bf44e10e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/controlplane/kubeadm/controllers/kubeadm_control_plane_controller.go b/controlplane/kubeadm/controllers/kubeadm_control_plane_controller.go | |
index 8961c49e9..186eb87b7 100644 | |
--- a/controlplane/kubeadm/controllers/kubeadm_control_plane_controller.go | |
+++ b/controlplane/kubeadm/controllers/kubeadm_control_plane_controller.go | |
@@ -29,6 +29,7 @@ import ( | |
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" | |
"k8s.io/apimachinery/pkg/types" | |
utilerrors "k8s.io/apimachinery/pkg/util/errors" | |
+ "k8s.io/apiserver/pkg/storage/names" | |
"k8s.io/client-go/tools/record" | |
ctrl "sigs.k8s.io/controller-runtime" | |
"sigs.k8s.io/controller-runtime/pkg/client" | |
@@ -57,10 +58,6 @@ type KubeadmConfigGenerator interface { | |
GenerateKubeadmConfig(ctx context.Context, c client.Client, namespace, namePrefix, clusterName string, spec *bootstrapv1.KubeadmConfigSpec, owner *metav1.OwnerReference) (*corev1.ObjectReference, error) | |
} | |
-type MachineGenerator interface { | |
- GenerateMachine(ctx context.Context, c client.Client, namespace, namePrefix, clusterName, version string, infraRef, bootstrapRef *corev1.ObjectReference, labels map[string]string, owner *metav1.OwnerReference) error | |
-} | |
- | |
// +kubebuilder:rbac:groups=core,resources=events,verbs=get;list;watch;create;patch | |
// +kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;create;patch | |
// +kubebuilder:rbac:groups=controlplane.cluster.x-k8s.io,resources=kubeadmcontrolplanes;kubeadmcontrolplanes/status,verbs=get;list;watch;create;update;patch;delete | |
@@ -72,7 +69,6 @@ type KubeadmControlPlaneReconciler struct { | |
TemplateCloner TemplateCloner | |
KubeadmConfigGenerator KubeadmConfigGenerator | |
- MachineGenerator MachineGenerator | |
controller controller.Controller | |
recorder record.EventRecorder | |
@@ -337,9 +333,8 @@ func (r *KubeadmControlPlaneReconciler) cloneConfigsAndGenerateMachine(ctx conte | |
// Only proceed to generating the Machine if we haven't encountered an error | |
if len(errs) == 0 { | |
- err := r.MachineGenerator.GenerateMachine( | |
+ err := r.generateMachine( | |
ctx, | |
- r.Client, | |
kcp.Namespace, | |
kcp.Name, | |
cluster.Name, | |
@@ -366,6 +361,35 @@ func (r *KubeadmControlPlaneReconciler) cloneConfigsAndGenerateMachine(ctx conte | |
return nil | |
} | |
+func (r *KubeadmControlPlaneReconciler) generateMachine(ctx context.Context, namespace, namePrefix, clusterName, version string, infraRef, bootstrapRef *corev1.ObjectReference, labels map[string]string, owner *metav1.OwnerReference) error { | |
+ machine := &clusterv1.Machine{ | |
+ ObjectMeta: metav1.ObjectMeta{ | |
+ // GenerateName: fmt.Sprintf("%s-", namePrefix), | |
+ Labels: labels, | |
+ Namespace: namespace, | |
+ Name: names.SimpleNameGenerator.GenerateName(namePrefix + "-"), | |
+ }, | |
+ Spec: clusterv1.MachineSpec{ | |
+ ClusterName: clusterName, | |
+ Version: &version, | |
+ InfrastructureRef: *infraRef, | |
+ Bootstrap: clusterv1.Bootstrap{ | |
+ ConfigRef: bootstrapRef, | |
+ }, | |
+ }, | |
+ } | |
+ | |
+ if owner != nil { | |
+ machine.SetOwnerReferences([]metav1.OwnerReference{*owner}) | |
+ } | |
+ | |
+ if err := r.Client.Create(ctx, machine); err != nil { | |
+ return errors.Wrap(err, "Failed to create machine") | |
+ } | |
+ | |
+ return nil | |
+} | |
+ | |
func (r *KubeadmControlPlaneReconciler) cleanupFromGeneration(ctx context.Context, infraRef, bootstrapRef *corev1.ObjectReference) error { | |
var errs []error | |
diff --git a/controlplane/kubeadm/controllers/kubeadm_control_plane_controller_test.go b/controlplane/kubeadm/controllers/kubeadm_control_plane_controller_test.go | |
index c8c7f36dd..37159b1d7 100644 | |
--- a/controlplane/kubeadm/controllers/kubeadm_control_plane_controller_test.go | |
+++ b/controlplane/kubeadm/controllers/kubeadm_control_plane_controller_test.go | |
@@ -18,7 +18,6 @@ package controllers | |
import ( | |
"context" | |
- "fmt" | |
"testing" | |
"github.com/onsi/gomega" | |
@@ -39,7 +38,6 @@ import ( | |
bootstrapv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha3" | |
kubeadmv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/types/v1beta1" | |
controlplanev1 "sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha3" | |
- "sigs.k8s.io/cluster-api/util" | |
"sigs.k8s.io/cluster-api/util/kubeconfig" | |
"sigs.k8s.io/cluster-api/util/secret" | |
) | |
@@ -75,33 +73,6 @@ func (kcg *kubeadmConfigGenerator) GenerateKubeadmConfig(_ context.Context, _ cl | |
return result, nil | |
} | |
-type machineGenerator struct{} | |
- | |
-func (mg *machineGenerator) GenerateMachine(ctx context.Context, c client.Client, namespace, namePrefix, _, _ string, infraRef, bootstrapRef *corev1.ObjectReference, _ map[string]string, _ *metav1.OwnerReference) error { | |
- name := fmt.Sprintf("%s-%s", namePrefix, util.RandomString(6)) | |
- machine := &clusterv1.Machine{ | |
- TypeMeta: metav1.TypeMeta{ | |
- APIVersion: clusterv1.GroupVersion.Version, | |
- Kind: "Machine", | |
- }, | |
- ObjectMeta: metav1.ObjectMeta{ | |
- Name: name, | |
- Namespace: namespace, | |
- }, | |
- Spec: clusterv1.MachineSpec{ | |
- InfrastructureRef: *infraRef, | |
- Bootstrap: clusterv1.Bootstrap{ | |
- ConfigRef: bootstrapRef, | |
- }, | |
- }, | |
- } | |
- | |
- if err := c.Create(ctx, machine); err != nil { | |
- return err | |
- } | |
- return nil | |
-} | |
- | |
func TestClusterToKubeadmControlPlane(t *testing.T) { | |
g := gomega.NewWithT(t) | |
g.Expect(clusterv1.AddToScheme(scheme.Scheme)).To(gomega.Succeed()) | |
@@ -391,7 +362,6 @@ func TestReconcileNoClusterOwnerRef(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
} | |
result := r.reconcile(context.Background(), kcp, r.Log) | |
@@ -435,7 +405,6 @@ func TestReconcileNoCluster(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
} | |
result := r.reconcile(context.Background(), kcp, r.Log) | |
@@ -486,7 +455,6 @@ func TestReconcileClusterNoEndpoints(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
} | |
result := r.reconcile(context.Background(), kcp, r.Log) | |
@@ -548,7 +516,6 @@ func TestReconcileInitializeControlPlane(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
} | |
result := r.reconcile(context.Background(), kcp, r.Log) | |
@@ -649,7 +616,7 @@ func TestReconcileControlPlaneScaleUp(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
+ recorder: record.NewFakeRecorder(32), | |
} | |
result := r.reconcile(context.Background(), kcp, r.Log) | |
@@ -701,7 +668,6 @@ func TestScaleUpControlPlaneAddsANewMachine(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
recorder: record.NewFakeRecorder(32), | |
} | |
@@ -756,7 +722,6 @@ func TestKubeadmControlPlaneReconciler_initializeControlPlane(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
} | |
g.Expect(r.initializeControlPlane(context.Background(), cluster, kcp)).To(gomega.Succeed()) | |
@@ -803,7 +768,6 @@ func TestCloneConfigsAndGenerateMachine(t *testing.T) { | |
Log: log.Log, | |
TemplateCloner: &templateCloner{}, | |
KubeadmConfigGenerator: &kubeadmConfigGenerator{}, | |
- MachineGenerator: &machineGenerator{}, | |
recorder: record.NewFakeRecorder(32), | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment