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 }