mirror of https://github.com/kubernetes/kops.git
Set provider name on karpenter-managed node
This commit is contained in:
parent
1ccb7840ac
commit
75d2b97754
|
@ -31,6 +31,7 @@ import (
|
|||
corev1 "k8s.io/api/core/v1"
|
||||
expirationcache "k8s.io/client-go/tools/cache"
|
||||
"k8s.io/klog/v2"
|
||||
|
||||
"k8s.io/kops/pkg/nodeidentity"
|
||||
)
|
||||
|
||||
|
@ -42,6 +43,7 @@ const (
|
|||
ClusterAutoscalerNodeTemplateLabel = "k8s.io/cluster-autoscaler/node-template/label/"
|
||||
// The expiration time of nodeidentity.Info cache.
|
||||
cacheTTL = 60 * time.Minute
|
||||
KarpenterNodeLabel = "karpenter.sh/"
|
||||
)
|
||||
|
||||
// nodeIdentifier identifies a node from EC2
|
||||
|
@ -145,10 +147,18 @@ func (i *nodeIdentifier) IdentifyNode(ctx context.Context, node *corev1.Node) (*
|
|||
Labels: labels,
|
||||
}
|
||||
|
||||
isKarpenterManaged := false
|
||||
for _, tag := range instance.Tags {
|
||||
if strings.HasPrefix(aws.StringValue(tag.Key), ClusterAutoscalerNodeTemplateLabel) {
|
||||
key := aws.StringValue(tag.Key)
|
||||
if strings.HasPrefix(key, ClusterAutoscalerNodeTemplateLabel) {
|
||||
info.Labels[strings.TrimPrefix(aws.StringValue(tag.Key), ClusterAutoscalerNodeTemplateLabel)] = aws.StringValue(tag.Value)
|
||||
}
|
||||
if strings.HasPrefix(key, KarpenterNodeLabel) {
|
||||
isKarpenterManaged = true
|
||||
}
|
||||
}
|
||||
if isKarpenterManaged {
|
||||
info.Labels["karpenter.sh/provisioner-name"] = info.Labels[CloudTagInstanceGroupName]
|
||||
}
|
||||
|
||||
// If caching is enabled add the nodeidentity.Info to cache.
|
||||
|
|
|
@ -92,6 +92,10 @@ func BuildNodeLabels(cluster *kops.Cluster, instanceGroup *kops.InstanceGroup) m
|
|||
nodeLabels[k] = v
|
||||
}
|
||||
|
||||
if instanceGroup.Spec.InstanceManager == kops.InstanceManagerKarpenter {
|
||||
nodeLabels["karpenter.sh/provisioner-name"] = instanceGroup.ObjectMeta.Name
|
||||
}
|
||||
|
||||
return nodeLabels
|
||||
}
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ CloudProvider: aws
|
|||
ConfigBase: memfs://clusters.example.com/minimal.example.com
|
||||
InstanceGroupName: karpenter-nodes
|
||||
InstanceGroupRole: Node
|
||||
NodeupConfigHash: ehZK5PooPMXQw0YD3dy5oARwClEXIj8ymh6DR1XYbQ0=
|
||||
NodeupConfigHash: 82WPA9hO1RdHX0zXhyshQojhW4qQug4izPAWZkgZkN4=
|
||||
|
||||
__EOF_KUBE_ENV
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ KubeletConfig:
|
|||
logLevel: 2
|
||||
networkPluginName: cni
|
||||
nodeLabels:
|
||||
karpenter.sh/provisioner-name: karpenter-nodes
|
||||
kubernetes.io/role: node
|
||||
node-role.kubernetes.io/node: ""
|
||||
nonMasqueradeCIDR: 100.64.0.0/10
|
||||
|
|
|
@ -416,6 +416,7 @@ resource "aws_launch_template" "karpenter-nodes-minimal-example-com" {
|
|||
tags = {
|
||||
"KubernetesCluster" = "minimal.example.com"
|
||||
"Name" = "karpenter-nodes.minimal.example.com"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/karpenter.sh/provisioner-name" = "karpenter-nodes"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/kubernetes.io/role" = "node"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/node" = ""
|
||||
"k8s.io/role/node" = "1"
|
||||
|
@ -428,6 +429,7 @@ resource "aws_launch_template" "karpenter-nodes-minimal-example-com" {
|
|||
tags = {
|
||||
"KubernetesCluster" = "minimal.example.com"
|
||||
"Name" = "karpenter-nodes.minimal.example.com"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/karpenter.sh/provisioner-name" = "karpenter-nodes"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/kubernetes.io/role" = "node"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/node" = ""
|
||||
"k8s.io/role/node" = "1"
|
||||
|
@ -438,6 +440,7 @@ resource "aws_launch_template" "karpenter-nodes-minimal-example-com" {
|
|||
tags = {
|
||||
"KubernetesCluster" = "minimal.example.com"
|
||||
"Name" = "karpenter-nodes.minimal.example.com"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/karpenter.sh/provisioner-name" = "karpenter-nodes"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/kubernetes.io/role" = "node"
|
||||
"k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/node" = ""
|
||||
"k8s.io/role/node" = "1"
|
||||
|
|
Loading…
Reference in New Issue