aws: Use IMDS to retrieve certificate names

This commit is contained in:
Ciprian Hacman 2024-01-04 13:47:28 +02:00
parent f0376b7b2f
commit 91b261c86d
1 changed files with 19 additions and 8 deletions

View File

@ -27,7 +27,6 @@ import (
"github.com/aws/aws-sdk-go/aws/ec2metadata" "github.com/aws/aws-sdk-go/aws/ec2metadata"
"github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/klog/v2" "k8s.io/klog/v2"
@ -769,16 +768,28 @@ func (b *KubeletBuilder) kubeletNames() ([]string, error) {
return append(addrs, name), nil return append(addrs, name), nil
} }
cloud := b.Cloud.(awsup.AWSCloud) addrs := []string{b.InstanceID}
sess := session.Must(session.NewSession())
metadata := ec2metadata.New(sess)
result, err := cloud.EC2().DescribeInstances(&ec2.DescribeInstancesInput{ if localHostname, err := metadata.GetMetadata("local-hostname"); err == nil {
InstanceIds: []*string{&b.InstanceID}, klog.V(2).Infof("Local Hostname: %s", localHostname)
}) addrs = append(addrs, localHostname)
if err != nil { }
return nil, fmt.Errorf("error describing instances: %v", err) if localIPv4, err := metadata.GetMetadata("local-ipv4"); err == nil {
klog.V(2).Infof("Local IPv4: %s", localIPv4)
addrs = append(addrs, localIPv4)
}
if publicIPv4, err := metadata.GetMetadata("public-ipv4"); err == nil {
klog.V(2).Infof("Public IPv4: %s", publicIPv4)
addrs = append(addrs, publicIPv4)
}
if publicIPv6, err := metadata.GetMetadata("ipv6"); err == nil {
klog.V(2).Infof("Public IPv6: %s", publicIPv6)
addrs = append(addrs, publicIPv6)
} }
return awsup.GetInstanceCertificateNames(result) return addrs, nil
} }
func (b *KubeletBuilder) buildCgroupService(name string) *nodetasks.Service { func (b *KubeletBuilder) buildCgroupService(name string) *nodetasks.Service {