mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Merge pull request #12028 from cjcullen/kl2
Make gce.ExternalID() use metadata server when requesting current external ID
This commit is contained in:
commit
20129b0adf
@ -58,6 +58,7 @@ type GCECloud struct {
|
|||||||
projectID string
|
projectID string
|
||||||
zone string
|
zone string
|
||||||
instanceID string
|
instanceID string
|
||||||
|
externalID string
|
||||||
networkName string
|
networkName string
|
||||||
|
|
||||||
// Used for accessing the metadata server
|
// Used for accessing the metadata server
|
||||||
@ -124,6 +125,14 @@ func getInstanceID() (string, error) {
|
|||||||
return parts[0], nil
|
return parts[0], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getCurrentExternalID() (string, error) {
|
||||||
|
externalID, err := metadata.Get("instance/id")
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("couldn't get external ID: %v", err)
|
||||||
|
}
|
||||||
|
return externalID, nil
|
||||||
|
}
|
||||||
|
|
||||||
func getNetworkName() (string, error) {
|
func getNetworkName() (string, error) {
|
||||||
result, err := metadata.Get("instance/network-interfaces/0/network")
|
result, err := metadata.Get("instance/network-interfaces/0/network")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -149,6 +158,10 @@ func newGCECloud(config io.Reader) (*GCECloud, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
externalID, err := getCurrentExternalID()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
networkName, err := getNetworkName()
|
networkName, err := getNetworkName()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -185,6 +198,7 @@ func newGCECloud(config io.Reader) (*GCECloud, error) {
|
|||||||
projectID: projectID,
|
projectID: projectID,
|
||||||
zone: zone,
|
zone: zone,
|
||||||
instanceID: instanceID,
|
instanceID: instanceID,
|
||||||
|
externalID: externalID,
|
||||||
networkName: networkName,
|
networkName: networkName,
|
||||||
metadataAccess: getMetadata,
|
metadataAccess: getMetadata,
|
||||||
}, nil
|
}, nil
|
||||||
@ -634,8 +648,16 @@ func (gce *GCECloud) NodeAddresses(_ string) ([]api.NodeAddress, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (gce *GCECloud) isCurrentInstance(instance string) bool {
|
||||||
|
return gce.instanceID == canonicalizeInstanceName(instance)
|
||||||
|
}
|
||||||
|
|
||||||
// ExternalID returns the cloud provider ID of the specified instance (deprecated).
|
// ExternalID returns the cloud provider ID of the specified instance (deprecated).
|
||||||
func (gce *GCECloud) ExternalID(instance string) (string, error) {
|
func (gce *GCECloud) ExternalID(instance string) (string, error) {
|
||||||
|
// if we are asking about the current instance, just go to metadata
|
||||||
|
if gce.isCurrentInstance(instance) {
|
||||||
|
return gce.externalID, nil
|
||||||
|
}
|
||||||
inst, err := gce.getInstanceByName(instance)
|
inst, err := gce.getInstanceByName(instance)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
Loading…
Reference in New Issue
Block a user