Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…ocal#42

This code can only be removed with #9752
  • Loading branch information
rfranzke committed May 26, 2024
1 parent 2f9fb9d commit 7ec12fe
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
27 changes: 27 additions & 0 deletions pkg/provider-local/machine-provider/local/create_machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/gardener/machine-controller-manager/pkg/util/provider/machinecodes/codes"
"github.com/gardener/machine-controller-manager/pkg/util/provider/machinecodes/status"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/klog/v2"
"k8s.io/utils/pointer"
Expand Down Expand Up @@ -48,6 +49,10 @@ func (d *localDriver) CreateMachine(ctx context.Context, req *driver.CreateMachi
return nil, status.Error(codes.Internal, fmt.Sprintf("error applying user data secret: %s", err.Error()))
}

if _, err := d.applyService(ctx, req); err != nil {
return nil, err
}

pod, err := d.applyPod(ctx, req, providerSpec, userDataSecret)
if err != nil {
return nil, err
Expand All @@ -59,6 +64,27 @@ func (d *localDriver) CreateMachine(ctx context.Context, req *driver.CreateMachi
}, nil
}

func (d *localDriver) applyService(ctx context.Context, req *driver.CreateMachineRequest) (*corev1.Service, error) {
svc := service(req.Machine)
svc.Spec.Type = corev1.ServiceTypeClusterIP
svc.Spec.ClusterIP = corev1.ClusterIPNone
svc.Spec.Ports = []corev1.ServicePort{{
Port: 10250,
Protocol: corev1.ProtocolTCP,
TargetPort: intstr.FromInt(10250),
}}
svc.Spec.Selector = map[string]string{
labelKeyProvider: apiv1alpha1.Provider,
labelKeyApp: labelValueMachine,
}

if err := d.client.Patch(ctx, svc, client.Apply, fieldOwner, client.ForceOwnership); err != nil {
return nil, status.Error(codes.Internal, fmt.Sprintf("error applying service: %s", err.Error()))
}

return svc, nil
}

func (d *localDriver) applyPod(
ctx context.Context,
req *driver.CreateMachineRequest,
Expand All @@ -85,6 +111,7 @@ func (d *localDriver) applyPod(
"networking.gardener.cloud/to-private-networks": "allowed",
"networking.gardener.cloud/to-public-networks": "allowed",
"networking.gardener.cloud/to-runtime-apiserver": "allowed", // needed for ManagedSeeds such that gardenlets deployed to these Machines can talk to the seed's kube-apiserver (which is the same like the garden cluster kube-apiserver)
"networking.gardener.cloud/to-shoot-networks": "allowed",
"networking.resources.gardener.cloud/to-kube-apiserver-tcp-443": "allowed",
}
pod.Spec = corev1.PodSpec{
Expand Down
13 changes: 13 additions & 0 deletions pkg/provider-local/machine-provider/local/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,19 @@ func (_ *localDriver) InitializeMachine(context.Context, *driver.InitializeMachi
return nil, status.Error(codes.Unimplemented, "InitializeMachine is not yet implemented")
}

func service(machine *machinev1alpha1.Machine) *corev1.Service {
return &corev1.Service{
TypeMeta: metav1.TypeMeta{
APIVersion: corev1.SchemeGroupVersion.String(),
Kind: "Service",
},
ObjectMeta: metav1.ObjectMeta{
Name: "machines",
Namespace: machine.Namespace,
},
}
}

func podForMachine(machine *machinev1alpha1.Machine) *corev1.Pod {
return &corev1.Pod{
TypeMeta: metav1.TypeMeta{
Expand Down

0 comments on commit 7ec12fe

Please sign in to comment.