...

Source file src/edge-infra.dev/pkg/sds/ien/ien.go

Documentation: edge-infra.dev/pkg/sds/ien

     1  package ien
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os"
     7  
     8  	"sigs.k8s.io/controller-runtime/pkg/client"
     9  
    10  	v1ien "edge-infra.dev/pkg/sds/ien/k8s/apis/v1"
    11  )
    12  
    13  // GetHostname gets hostname of the node the controller is running on via the HOSTNAME env var
    14  func GetHostname() (string, error) {
    15  	hostname, ok := os.LookupEnv("HOSTNAME")
    16  	if !ok {
    17  		return "", fmt.Errorf("could not find environment variable HOSTNAME: %s", hostname)
    18  	}
    19  
    20  	return hostname, nil
    21  }
    22  
    23  // FromClient uses provided k8s client/reader to get IENode with name specified via HOSTNAME env var
    24  func FromClient(ctx context.Context, c client.Reader) (*v1ien.IENode, error) {
    25  	hostname, err := GetHostname()
    26  	if err != nil {
    27  		return nil, err
    28  	}
    29  	ieNode := &v1ien.IENode{}
    30  	if err := c.Get(ctx, client.ObjectKey{Name: hostname}, ieNode); err != nil {
    31  		return nil, err
    32  	}
    33  	return ieNode, nil
    34  }
    35  

View as plain text