Skip to content

Commit

Permalink
aws: Set provider ID when starting kubelet
Browse files Browse the repository at this point in the history
  • Loading branch information
hakman committed Jan 5, 2024
1 parent 57b457c commit 7a59599
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 4 deletions.
17 changes: 15 additions & 2 deletions nodeup/pkg/model/kubelet.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func (b *KubeletBuilder) Build(c *fi.NodeupModelBuilderContext) error {
}

{
t, err := buildKubeletComponentConfig(kubeletConfig)
t, err := b.buildKubeletComponentConfig(kubeletConfig)
if err != nil {
return err
}
Expand Down Expand Up @@ -218,8 +218,21 @@ func (b *KubeletBuilder) Build(c *fi.NodeupModelBuilderContext) error {
return nil
}

func buildKubeletComponentConfig(kubeletConfig *kops.KubeletConfigSpec) (*nodetasks.File, error) {
func (b *KubeletBuilder) buildKubeletComponentConfig(kubeletConfig *kops.KubeletConfigSpec) (*nodetasks.File, error) {
componentConfig := kubelet.KubeletConfiguration{}
if b.CloudProvider() == kops.CloudProviderAWS {
sess := session.Must(session.NewSession())
metadata := ec2metadata.New(sess)

if metadata.Available() {
instanceIdentity, err := metadata.GetInstanceIdentityDocument()
if err != nil {
return nil, err
}

componentConfig.ProviderID = fmt.Sprintf("aws:///%s/%s", instanceIdentity.AvailabilityZone, instanceIdentity.InstanceID)
}
}
if kubeletConfig.ShutdownGracePeriod != nil {
componentConfig.ShutdownGracePeriod = *kubeletConfig.ShutdownGracePeriod
}
Expand Down
12 changes: 10 additions & 2 deletions nodeup/pkg/model/kubelet_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ func runKubeletBuilder(t *testing.T, context *fi.NodeupModelBuilderContext, node
return
}
{
fileTask, err := buildKubeletComponentConfig(kubeletConfig)
fileTask, err := builder.buildKubeletComponentConfig(kubeletConfig)
if err != nil {
t.Fatalf("error from KubeletBuilder buildKubeletComponentConfig: %v", err)
return
Expand Down Expand Up @@ -401,12 +401,20 @@ func RunGoldenTest(t *testing.T, basedir string, key string, builder func(*Nodeu
}

func Test_BuildComponentConfigFile(t *testing.T) {
builder := KubeletBuilder{
NodeupModelContext: &NodeupModelContext{
BootConfig: &nodeup.BootConfig{
CloudProvider: kops.CloudProviderAWS,
},
},
}

componentConfig := kops.KubeletConfigSpec{
ShutdownGracePeriod: &metav1.Duration{Duration: 30 * time.Second},
ShutdownGracePeriodCriticalPods: &metav1.Duration{Duration: 10 * time.Second},
}

_, err := buildKubeletComponentConfig(&componentConfig)
_, err := builder.buildKubeletComponentConfig(&componentConfig)
if err != nil {
t.Errorf("Failed to build component config file: %v", err)
}
Expand Down

0 comments on commit 7a59599

Please sign in to comment.