File tree Expand file tree Collapse file tree 2 files changed +50
-1
lines changed
Expand file tree Collapse file tree 2 files changed +50
-1
lines changed Original file line number Diff line number Diff line change 1+ package metadata
2+
3+ import (
4+ "io"
5+ "net/http"
6+
7+ "k8s.io/klog/v2"
8+ )
9+
10+ const alibabaInstanceMetadataURL = "http://100.100.100.200/latest/meta-data/"
11+
12+ func getAlibabaMetadata () * CloudMetadata {
13+ var lastErr error
14+ getVar := func (path string ) string {
15+ r , _ := http .NewRequest (http .MethodGet , alibabaInstanceMetadataURL + path , nil )
16+ resp , err := httpCallWithTimeout (r )
17+ if err != nil {
18+ lastErr = err
19+ return ""
20+ }
21+ defer resp .Body .Close ()
22+ data , err := io .ReadAll (resp .Body )
23+ if err != nil {
24+ lastErr = err
25+ return ""
26+ }
27+ return string (data )
28+ }
29+ res := & CloudMetadata {
30+ Provider : CloudProviderAlibaba ,
31+ InstanceId : getVar ("instance-id" ),
32+ Region : getVar ("region-id" ),
33+ AvailabilityZone : getVar ("zone-id" ),
34+ AccountId : getVar ("owner-account-id" ),
35+ InstanceType : getVar ("instance/instance-type" ),
36+ LocalIPv4 : getVar ("private-ipv4" ),
37+ }
38+ if lastErr != nil {
39+ klog .Warningln (lastErr )
40+ return nil
41+ }
42+ return res
43+ }
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ const (
2020 CloudProviderAzure CloudProvider = "Azure"
2121 CloudProviderHetzner CloudProvider = "Hetzner"
2222 CloudProviderDigitalOcean CloudProvider = "DigitalOcean"
23+ CloudProviderAlibaba CloudProvider = "Alibaba"
2324 CloudProviderUnknown CloudProvider = ""
2425)
2526
@@ -55,8 +56,11 @@ func getCloudProvider() CloudProvider {
5556 }
5657 }
5758 if vendor , err := os .ReadFile ("/sys/class/dmi/id/sys_vendor" ); err == nil {
58- if strings .TrimSpace (string (vendor )) == "Hetzner" {
59+ switch strings .TrimSpace (string (vendor )) {
60+ case "Hetzner" :
5961 return CloudProviderHetzner
62+ case "Alibaba Cloud" :
63+ return CloudProviderAlibaba
6064 }
6165 }
6266 return CloudProviderUnknown
@@ -76,6 +80,8 @@ func GetInstanceMetadata() *CloudMetadata {
7680 return getHetznerMetadata ()
7781 case CloudProviderDigitalOcean :
7882 return getDigitalOceanMetadata ()
83+ case CloudProviderAlibaba :
84+ return getAlibabaMetadata ()
7985 }
8086 return nil
8187}
You can’t perform that action at this time.
0 commit comments