implementation of GetZoneByProviderID and GetZoneByNodeName for AWS
This commit is contained in:
parent
c071a77156
commit
9585658eaa
@ -1211,14 +1211,38 @@ func (c *Cloud) GetZone() (cloudprovider.Zone, error) {
|
|||||||
// This is particularly useful in external cloud providers where the kubelet
|
// This is particularly useful in external cloud providers where the kubelet
|
||||||
// does not initialize node data.
|
// does not initialize node data.
|
||||||
func (c *Cloud) GetZoneByProviderID(providerID string) (cloudprovider.Zone, error) {
|
func (c *Cloud) GetZoneByProviderID(providerID string) (cloudprovider.Zone, error) {
|
||||||
return cloudprovider.Zone{}, errors.New("GetZoneByProviderID not implemented")
|
instanceID, err := kubernetesInstanceID(providerID).mapToAWSInstanceID()
|
||||||
|
if err != nil {
|
||||||
|
return cloudprovider.Zone{}, err
|
||||||
|
}
|
||||||
|
instance, err := c.getInstanceByID(string(instanceID))
|
||||||
|
if err != nil {
|
||||||
|
return cloudprovider.Zone{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
zone := cloudprovider.Zone{
|
||||||
|
FailureDomain: *(instance.Placement.AvailabilityZone),
|
||||||
|
Region: c.region,
|
||||||
|
}
|
||||||
|
|
||||||
|
return zone, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetZoneByNodeName implements Zones.GetZoneByNodeName
|
// GetZoneByNodeName implements Zones.GetZoneByNodeName
|
||||||
// This is particularly useful in external cloud providers where the kubelet
|
// This is particularly useful in external cloud providers where the kubelet
|
||||||
// does not initialize node data.
|
// does not initialize node data.
|
||||||
func (c *Cloud) GetZoneByNodeName(nodeName types.NodeName) (cloudprovider.Zone, error) {
|
func (c *Cloud) GetZoneByNodeName(nodeName types.NodeName) (cloudprovider.Zone, error) {
|
||||||
return cloudprovider.Zone{}, errors.New("GetZoneByNodeName not imeplemented")
|
instance, err := c.getInstanceByNodeName(nodeName)
|
||||||
|
if err != nil {
|
||||||
|
return cloudprovider.Zone{}, err
|
||||||
|
}
|
||||||
|
zone := cloudprovider.Zone{
|
||||||
|
FailureDomain: *(instance.Placement.AvailabilityZone),
|
||||||
|
Region: c.region,
|
||||||
|
}
|
||||||
|
|
||||||
|
return zone, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Abstraction around AWS Instance Types
|
// Abstraction around AWS Instance Types
|
||||||
|
Loading…
Reference in New Issue
Block a user