Metadata package to interact with exoscale metadata server from an exoscale Instance
Checklist
(For exoscale contributors)
[x] Changelog updated (under Unreleased block)
[x] For a new resource or new attributes: test added/updated
test from Instance
package main
import (
"context"
"fmt"
"log"
"github.com/exoscale/egoscale/v3/metadata"
)
func main() {
endpoints := []metadata.Endpoint{
metadata.AvailabilityZone,
metadata.CloudIdentifier,
metadata.InstanceID,
metadata.LocalHostname,
metadata.LocalIpv4,
metadata.PublicHostname,
metadata.PublicIpv4,
metadata.ServiceOffering,
metadata.VMID,
}
for _, endpoint := range endpoints {
resp, err := metadata.Get(context.Background(), endpoint)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Response for %s: %s\n", endpoint, resp)
}
resp, err := metadata.UserData(context.Background())
if err != nil {
log.Fatal(err)
}
fmt.Printf("Response for user-data: %s\n", resp)
}
Output
Response for availability-zone: ch-gva-2
Response for cloud-identifier: Exoscale Compute Platform
Response for instance-id: 905xxxxxx8efd0
Response for local-hostname: test
Response for local-ipv4: 85.x.x.x
Response for public-hostname: test
Response for public-ipv4: 85.x.x.x
Response for service-offering: Cpu-huge 32gb 16cpu
Response for vm-id: 905xxxxxxx8efd0
Response for user-data: #cloud-init....
Description
Metadata package to interact with exoscale metadata server from an exoscale Instance
Checklist
(For exoscale contributors)
test from Instance
Output