package ien import ( "context" "fmt" "os" "sigs.k8s.io/controller-runtime/pkg/client" v1ien "edge-infra.dev/pkg/sds/ien/k8s/apis/v1" ) // GetHostname gets hostname of the node the controller is running on via the HOSTNAME env var func GetHostname() (string, error) { hostname, ok := os.LookupEnv("HOSTNAME") if !ok { return "", fmt.Errorf("could not find environment variable HOSTNAME: %s", hostname) } return hostname, nil } // FromClient uses provided k8s client/reader to get IENode with name specified via HOSTNAME env var func FromClient(ctx context.Context, c client.Reader) (*v1ien.IENode, error) { hostname, err := GetHostname() if err != nil { return nil, err } ieNode := &v1ien.IENode{} if err := c.Get(ctx, client.ObjectKey{Name: hostname}, ieNode); err != nil { return nil, err } return ieNode, nil }