@@ -19,13 +19,15 @@ package bean
19
19
import (
20
20
"context"
21
21
"fmt"
22
+ "os"
23
+ "strings"
24
+ "time"
25
+
22
26
corev1 "k8s.io/api/core/v1"
23
27
apierrors "k8s.io/apimachinery/pkg/api/errors"
24
28
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25
29
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
26
30
"k8s.io/client-go/kubernetes"
27
- "strings"
28
- "time"
29
31
)
30
32
31
33
const (
@@ -55,10 +57,25 @@ const (
55
57
KopsNodeGroupLabel = "kops.k8s.io/instancegroup"
56
58
AWSEKSNodeGroupLabel = "eks.amazonaws.com/nodegroup"
57
59
KarpenterNodeGroupLabel = "karpenter.sh/nodepool"
60
+ // env var to override default node group labels
61
+ NodeGroupLabelsEnvVar = "NODE_GROUP_LABELS"
58
62
)
59
63
60
- // TODO: add any new nodeGrouplabel in this array
61
- var NodeGroupLabels = [6 ]string {AWSNodeGroupLabel , AzureNodeGroupLabel , GcpNodeGroupLabel , KopsNodeGroupLabel , AWSEKSNodeGroupLabel , KarpenterNodeGroupLabel }
64
+ var NodeGroupLabels = []string {AWSNodeGroupLabel , AzureNodeGroupLabel , GcpNodeGroupLabel , KopsNodeGroupLabel , AWSEKSNodeGroupLabel , KarpenterNodeGroupLabel }
65
+
66
+ func init () {
67
+ if envLabels := os .Getenv (NodeGroupLabelsEnvVar ); envLabels != "" {
68
+ customLabels := strings .Split (envLabels , "," )
69
+ // Trim spaces from labels
70
+ for i := range customLabels {
71
+ customLabels [i ] = strings .TrimSpace (customLabels [i ])
72
+ }
73
+ // Only update if we got valid labels
74
+ if len (customLabels ) > 0 {
75
+ NodeGroupLabels = customLabels
76
+ }
77
+ }
78
+ }
62
79
63
80
// below const set is used for pod delete status
64
81
const (
0 commit comments