github.com/smartcontractkit/chainlink-testing-framework/libs@v0.0.0-20240227141906-ec710b4eb1a3/k8s/pkg/alias/alias.go (about)

     1  package alias
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  	"time"
     7  
     8  	"github.com/smartcontractkit/chainlink-testing-framework/libs/k8s/imports/k8s"
     9  	"github.com/smartcontractkit/chainlink-testing-framework/libs/utils/ptr"
    10  )
    11  
    12  // ShortDur is a helper method for kube-janitor duration format
    13  func ShortDur(d time.Duration) *string {
    14  	s := d.String()
    15  	if strings.HasSuffix(s, "m0s") {
    16  		s = s[:len(s)-2]
    17  	}
    18  	if strings.HasSuffix(s, "h0m") {
    19  		s = s[:len(s)-2]
    20  	}
    21  	return ptr.Ptr(s)
    22  }
    23  
    24  func ConvertLabels(labels []string) (*map[string]*string, error) {
    25  	cdk8sLabels := make(map[string]*string)
    26  	for _, s := range labels {
    27  		a := strings.Split(s, "=")
    28  		if len(a) != 2 {
    29  			return nil, fmt.Errorf("invalid label '%s' provided, please provide labels in format key=value", a)
    30  		}
    31  		cdk8sLabels[a[0]] = ptr.Ptr(a[1])
    32  	}
    33  	return &cdk8sLabels, nil
    34  }
    35  
    36  // ConvertAnnotations converts a map[string]string to a *map[string]*string
    37  func ConvertAnnotations(annotations map[string]string) *map[string]*string {
    38  	a := make(map[string]*string)
    39  	for k, v := range annotations {
    40  		a[k] = ptr.Ptr(v)
    41  	}
    42  	return &a
    43  }
    44  
    45  // EnvVarStr quick shortcut for string/string key/value var
    46  func EnvVarStr(k, v string) *k8s.EnvVar {
    47  	return &k8s.EnvVar{
    48  		Name:  ptr.Ptr(k),
    49  		Value: ptr.Ptr(v),
    50  	}
    51  }
    52  
    53  // ContainerResources container resource requirements
    54  func ContainerResources(reqCPU, reqMEM, limCPU, limMEM string) *k8s.ResourceRequirements {
    55  	return &k8s.ResourceRequirements{
    56  		Requests: &map[string]k8s.Quantity{
    57  			"cpu":    k8s.Quantity_FromString(ptr.Ptr(reqCPU)),
    58  			"memory": k8s.Quantity_FromString(ptr.Ptr(reqMEM)),
    59  		},
    60  		Limits: &map[string]k8s.Quantity{
    61  			"cpu":    k8s.Quantity_FromString(ptr.Ptr(limCPU)),
    62  			"memory": k8s.Quantity_FromString(ptr.Ptr(limMEM)),
    63  		},
    64  	}
    65  }