mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-08-05 05:24:16 -04:00
AB#2286 Return only primary IPs for instance metadata operations (#335)
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
This commit is contained in:
parent
5c00dafe9b
commit
4151d365fb
21 changed files with 180 additions and 185 deletions
|
@ -14,6 +14,7 @@ import (
|
|||
qemucloud "github.com/edgelesssys/constellation/bootstrapper/cloudprovider/qemu"
|
||||
"github.com/edgelesssys/constellation/internal/atls"
|
||||
"github.com/edgelesssys/constellation/internal/cloud/cloudprovider"
|
||||
"github.com/edgelesssys/constellation/internal/cloud/metadata"
|
||||
"github.com/edgelesssys/constellation/internal/constants"
|
||||
"github.com/edgelesssys/constellation/internal/file"
|
||||
"github.com/edgelesssys/constellation/internal/grpc/atlscredentials"
|
||||
|
@ -96,39 +97,34 @@ func main() {
|
|||
}
|
||||
|
||||
func getVPCIP(ctx context.Context, provider string) (string, error) {
|
||||
var metadata metadataAPI
|
||||
var err error
|
||||
|
||||
switch cloudprovider.FromString(provider) {
|
||||
case cloudprovider.Azure:
|
||||
metadata, err := azurecloud.NewMetadata(ctx)
|
||||
metadata, err = azurecloud.NewMetadata(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
self, err := metadata.Self(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return self.PrivateIPs[0], nil
|
||||
case cloudprovider.GCP:
|
||||
gcpClient, err := gcpcloud.NewClient(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
metadata := gcpcloud.New(gcpClient)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
self, err := metadata.Self(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return self.PrivateIPs[0], nil
|
||||
metadata = gcpcloud.New(gcpClient)
|
||||
case cloudprovider.QEMU:
|
||||
metadata := &qemucloud.Metadata{}
|
||||
self, err := metadata.Self(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return self.PrivateIPs[0], nil
|
||||
metadata = &qemucloud.Metadata{}
|
||||
default:
|
||||
return "", errors.New("unsupported cloud provider")
|
||||
}
|
||||
|
||||
self, err := metadata.Self(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return self.VPCIP, nil
|
||||
}
|
||||
|
||||
type metadataAPI interface {
|
||||
Self(ctx context.Context) (metadata.InstanceMetadata, error)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue