Skip to content

Commit c634396

Browse files
authored
Adding ProviderID to node (#290)
* Adding ProviderID to node
1 parent a151318 commit c634396

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

substrate/pkg/apis/v1alpha1/substrate_status.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ type InfrastructureStatus struct {
3434
PrivateRouteTableID *string `json:"privateRouteTableID,omitempty"`
3535
PublicRouteTableID *string `json:"publicRouteTableID,omitempty"`
3636
SecurityGroupID *string `json:"securityGroupID,omitempty"`
37+
MasterInstanceID *string `json:"masterInstanceID,omitempty"`
3738
PrivateSubnetIDs []string `json:"privateSubnetIDs,omitempty"`
3839
PublicSubnetIDs []string `json:"publicSubnetIDs,omitempty"`
3940
}

substrate/pkg/controller/substrate/cluster/config.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"fmt"
2121
"github.com/aws/aws-sdk-go/aws"
2222
"github.com/aws/aws-sdk-go/aws/awserr"
23+
"github.com/aws/aws-sdk-go/service/ec2"
2324
"github.com/aws/aws-sdk-go/service/s3"
2425
"github.com/aws/aws-sdk-go/service/s3/s3manager"
2526
"github.com/aws/aws-sdk-go/service/sts"
@@ -69,6 +70,7 @@ type Config struct {
6970
STS *sts.STS
7071
S3Uploader *s3manager.Uploader
7172
clusterConfigPath string
73+
EC2 *ec2.EC2
7274
}
7375

7476
func (c *Config) Create(ctx context.Context, substrate *v1alpha1.Substrate) (reconcile.Result, error) {
@@ -95,7 +97,7 @@ func (c *Config) Create(ctx context.Context, substrate *v1alpha1.Substrate) (rec
9597
if err := c.generateStaticPodManifests(cfg, substrate); err != nil {
9698
return reconcile.Result{}, fmt.Errorf("generating manifests, %w", err)
9799
}
98-
if err := c.kubeletSystemService(cfg, substrate); err != nil {
100+
if err := c.kubeletSystemService(ctx, cfg, substrate); err != nil {
99101
return reconcile.Result{}, fmt.Errorf("generating kubelet service config, %w", err)
100102
}
101103
// deploy aws IAM authenticator
@@ -224,7 +226,15 @@ func (c *Config) ensureBucket(ctx context.Context, substrate *v1alpha1.Substrate
224226
}
225227
return nil
226228
}
227-
func (c *Config) kubeletSystemService(cfg *kubeadm.InitConfiguration, substrate *v1alpha1.Substrate) error {
229+
func (c *Config) kubeletSystemService(ctx context.Context, cfg *kubeadm.InitConfiguration, substrate *v1alpha1.Substrate) error {
230+
instancesOutput, err := c.EC2.DescribeInstancesWithContext(ctx, &ec2.DescribeInstancesInput{
231+
InstanceIds: []*string{substrate.Status.Infrastructure.MasterInstanceID}})
232+
if err != nil {
233+
return fmt.Errorf("describing ec2 instance, %w", err)
234+
}
235+
if len(instancesOutput.Reservations) != 1 || len(instancesOutput.Reservations[0].Instances) != 1 {
236+
return fmt.Errorf("finding the ec2 instance")
237+
}
228238
localDir := path.Join(c.clusterConfigPath, aws.StringValue(discovery.Name(substrate)), kubeletSystemdPath)
229239
if _, err := os.Stat(localDir); err != nil {
230240
if !os.IsNotExist(err) {
@@ -239,8 +249,8 @@ After=docker.service iptables-restore.service
239249
Requires=docker.service
240250
241251
[Service]
242-
ExecStart=/usr/bin/kubelet --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --hostname-override=%s --pod-manifest-path=/etc/kubernetes/manifests --kubeconfig=/etc/kubernetes/kubelet.conf --cgroup-driver=systemd --container-runtime=docker --network-plugin=cni --pod-infra-container-image=public.ecr.aws/eks-distro/kubernetes/pause:v1.18.9-eks-1-18-1 --node-labels=kit.aws/substrate=control-plane
243-
Restart=always`, substrate.Name)), 0644); err != nil {
252+
ExecStart=/usr/bin/kubelet --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --hostname-override=%s --pod-manifest-path=/etc/kubernetes/manifests --kubeconfig=/etc/kubernetes/kubelet.conf --cgroup-driver=systemd --container-runtime=docker --network-plugin=cni --pod-infra-container-image=public.ecr.aws/eks-distro/kubernetes/pause:v1.18.9-eks-1-18-1 --provider-id=aws:///%s/%s --node-labels=kit.aws/substrate=control-plane
253+
Restart=always`, substrate.Name, aws.StringValue(instancesOutput.Reservations[0].Instances[0].Placement.AvailabilityZone), aws.StringValue(substrate.Status.Infrastructure.MasterInstanceID))), 0644); err != nil {
244254
return fmt.Errorf("writing kubelet configuration, %w", err)
245255
}
246256
return nil

substrate/pkg/controller/substrate/cluster/instance.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ func (i *Instance) Create(ctx context.Context, substrate *v1alpha1.Substrate) (r
8888
return reconcile.Result{}, fmt.Errorf("creating fleet %v", strings.Join(createFleetErrMsgs, ","))
8989
}
9090
logging.FromContext(ctx).Infof("Created instance %s", aws.StringValue(createFleetOutput.Instances[0].InstanceIds[0]))
91+
substrate.Status.Infrastructure.MasterInstanceID = createFleetOutput.Instances[0].InstanceIds[0]
9192

9293
if err := i.delete(ctx, substrate, func(instance *ec2.Instance) bool {
9394
if aws.StringValue(instance.InstanceId) == aws.StringValue(createFleetOutput.Instances[0].InstanceIds[0]) {

0 commit comments

Comments
 (0)