Skip to content

Commit

Permalink
Merge branch 'main' into bsoghigian/e2e/nic-gc
Browse files Browse the repository at this point in the history
  • Loading branch information
tallaxes authored Feb 21, 2025
2 parents 920b172 + b199e51 commit 602f72e
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 30 deletions.
11 changes: 6 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module github.com/Azure/karpenter-provider-azure
go 1.23.6

require (
github.com/Azure/aks-middleware v0.0.30
github.com/Azure/azure-kusto-go v0.16.1
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
github.com/Azure/azure-sdk-for-go-extensions v0.1.8
Expand Down Expand Up @@ -107,7 +108,7 @@ require (
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect
github.com/hashicorp/golang-lru v1.0.2 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
Expand Down Expand Up @@ -145,17 +146,17 @@ require (
golang.org/x/crypto v0.33.0 // indirect
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa // indirect
golang.org/x/net v0.35.0 // indirect
golang.org/x/oauth2 v0.22.0 // indirect
golang.org/x/oauth2 v0.24.0 // indirect
golang.org/x/sys v0.30.0 // indirect
golang.org/x/term v0.29.0 // indirect
golang.org/x/text v0.22.0 // indirect
golang.org/x/time v0.6.0 // indirect
golang.org/x/tools v0.28.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/api v0.183.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240808171019-573a1156607a // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240808171019-573a1156607a // indirect
google.golang.org/grpc v1.65.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect
google.golang.org/grpc v1.68.0 // indirect
google.golang.org/protobuf v1.36.1 // indirect
gopkg.in/dnaeon/go-vcr.v3 v3.2.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
Expand Down
26 changes: 14 additions & 12 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d/g
contrib.go.opencensus.io/exporter/prometheus v0.4.2 h1:sqfsYl5GIY/L570iT+l93ehxaWJs2/OwXtiWwew3oAg=
contrib.go.opencensus.io/exporter/prometheus v0.4.2/go.mod h1:dvEHbiKmgvbr5pjaF9fpw1KeYcjrnC1J8B+JKjsZyRQ=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/Azure/aks-middleware v0.0.30 h1:WhZwYwDYkA0hgCwywYZgR3GyQeNGri6rucC/uJrvREM=
github.com/Azure/aks-middleware v0.0.30/go.mod h1:02sVX8v7HPSNuVL3NFBVwmRxyzriyWMU7IwJeDmkZvM=
github.com/Azure/azure-kusto-go v0.16.1 h1:vCBWcQghmC1qIErUUgVNWHxGhZVStu1U/hki6iBA14k=
github.com/Azure/azure-kusto-go v0.16.1/go.mod h1:9F2zvXH8B6eWzgI1S4k1ZXAIufnBZ1bv1cW1kB1n3D0=
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
Expand Down Expand Up @@ -302,8 +304,8 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0 h1:CWyXh/jylQWp2dtiV33mY4iSSp6yf4lmn+c7/tN+ObI=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0/go.mod h1:nCLIt0w3Ept2NwF8ThLmrppXsfT07oC8k0XNDxd8sVU=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
Expand Down Expand Up @@ -429,8 +431,8 @@ github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew=
github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o=
Expand Down Expand Up @@ -591,8 +593,8 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA=
golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand Down Expand Up @@ -788,10 +790,10 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto/googleapis/api v0.0.0-20240808171019-573a1156607a h1:KyUe15n7B1YCu+kMmPtlXxgkLQbp+Dw0tCRZf9Sd+CE=
google.golang.org/genproto/googleapis/api v0.0.0-20240808171019-573a1156607a/go.mod h1:4+X6GvPs+25wZKbQq9qyAXrwIRExv7w0Ea6MgZLZiDM=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240808171019-573a1156607a h1:EKiZZXueP9/T68B8Nl0GAx9cjbQnCId0yP3qPMgaaHs=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240808171019-573a1156607a/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 h1:pgr/4QbFyktUv9CtQ/Fq4gzEE6/Xs7iCXbktaGzLHbQ=
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697/go.mod h1:+D9ySVjN8nY8YCVjc5O7PZDIdZporIDY3KaGfJunh88=
google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA=
google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
Expand All @@ -805,8 +807,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand Down
1 change: 1 addition & 0 deletions pkg/providers/imagefamily/bootstrap/aksbootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,7 @@ func (a AKS) applyOptions(nbv *NodeBootstrapVariables) {
nbv.UserAssignedIdentityID = a.KubeletIdentityClientID

nbv.NetworkPlugin = a.NetworkPlugin

nbv.NetworkPolicy = a.NetworkPolicy
nbv.KubernetesVersion = a.KubernetesVersion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@ import (
"context"
"encoding/base64"
"fmt"
"log/slog"
"math"
"os"
"strings"
"time"

"github.com/Azure/aks-middleware/http/client/direct/restlogger"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/karpenter-provider-azure/pkg/apis/v1alpha2"
"github.com/Azure/karpenter-provider-azure/pkg/operator/options"
Expand Down Expand Up @@ -166,6 +169,11 @@ func (p ProvisionClientBootstrap) GetCustomDataAndCSE(ctx context.Context) (stri

func (p *ProvisionClientBootstrap) getNodeBootstrappingFromClient(ctx context.Context, provisionProfile *models.ProvisionProfile, provisionHelperValues *models.ProvisionHelperValues, bootstrapToken string) (string, string, error) {
transport := httptransport.New(options.FromContext(ctx).NodeBootstrappingServerURL, "/", []string{"http"})

logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
loggingClient := restlogger.NewLoggingClient(logger)
transport.Transport = loggingClient.Transport

client := client.New(transport, strfmt.Default)

params := operations.NewNodeBootstrappingGetParams()
Expand All @@ -183,7 +191,7 @@ func (p *ProvisionClientBootstrap) getNodeBootstrappingFromClient(ctx context.Co

resp, err := client.Operations.NodeBootstrappingGet(params)
if err != nil {
// As of now we just fail the provisioning given the unlikely scenario of retriable error, but could be revisted along with retriable status on the server side.
// As of now we just fail the provisioning given the unlikely scenario of retriable error, but could be revisited along with retriable status on the server side.
return "", "", err
}

Expand Down Expand Up @@ -239,7 +247,7 @@ func normalizeResourceGroupNameForLabel(resourceGroupName string) string {
}

func reverseVMMemoryOverhead(vmMemoryOverheadPercent float64, adjustedMemory float64) float64 {
// This is not the best way to do it... But will be refactored later, given that retreiving the original memory properly might involves some restructure.
// This is not the best way to do it... But will be refactored later, given that retrieving the original memory properly might involves some restructure.
// Due to the fact that it is abstracted behind the cloudprovider interface.
return adjustedMemory / (1 - vmMemoryOverheadPercent)
}
Expand Down
53 changes: 52 additions & 1 deletion pkg/providers/instancetype/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ var _ = Describe("InstanceType Provider", func() {
ContainSubstring("kubernetes.azure.com/network-subnet=karpentersub"),
ContainSubstring("kubernetes.azure.com/nodenetwork-vnetguid=test-vnet-guid"),
ContainSubstring("kubernetes.azure.com/podnetwork-type=overlay"),
ContainSubstring("kubernetes.azure.com/azure-cni-overlay=true"),
))
})
It("should use the subnet specified in the nodeclass", func() {
Expand Down Expand Up @@ -1222,6 +1223,57 @@ var _ = Describe("InstanceType Provider", func() {
Expect(kubeletFlags).To(ContainSubstring("--register-with-taints=" + karpv1.UnregisteredNoExecuteTaint.ToString()))
})
})

DescribeTable("Azure CNI node labels and agentbaker network plugin", func(
networkPlugin, networkPluginMode, networkDataplane, expectedAgentBakerNetPlugin string,
expectedNodeLabels sets.Set[string]) {
options := test.Options(test.OptionsFields{
NetworkPlugin: lo.ToPtr(networkPlugin),
NetworkPluginMode: lo.ToPtr(networkPluginMode),
NetworkDataplane: lo.ToPtr(networkDataplane),
})
ctx = options.ToContext(ctx)

ExpectApplied(ctx, env.Client, nodePool, nodeClass)
pod := coretest.UnschedulablePod()
ExpectProvisioned(ctx, env.Client, cluster, cloudProvider, coreProvisioner, pod)
ExpectScheduled(ctx, env.Client, pod)
customData := ExpectDecodedCustomData(azureEnv)

Expect(customData).To(ContainSubstring(fmt.Sprintf("NETWORK_PLUGIN=%s", expectedAgentBakerNetPlugin)))

for label := range expectedNodeLabels {
Expect(customData).To(ContainSubstring(label))
}
},
Entry("Azure CNI V1",
"azure", "", "",
"azure", sets.New[string]()),
Entry("Azure CNI w Overlay",
"azure", "overlay", "",
"none",
sets.New(
"kubernetes.azure.com/azure-cni-overlay=true",
"kubernetes.azure.com/network-subnet=karpentersub",
"kubernetes.azure.com/nodenetwork-vnetguid=test-vnet-guid",
"kubernetes.azure.com/podnetwork-type=overlay",
)),
Entry("Azure CNI w Overlay w Cilium",
"azure", "overlay", "cilium",
"none",
sets.New(
"kubernetes.azure.com/azure-cni-overlay=true",
"kubernetes.azure.com/network-subnet=karpentersub",
"kubernetes.azure.com/nodenetwork-vnetguid=test-vnet-guid",
"kubernetes.azure.com/podnetwork-type=overlay",
"kubernetes.azure.com/ebpf-dataplane=cilium",
)),
Entry("Cilium w feature flag Microsoft.ContainerService/EnableCiliumNodeSubnet",
"azure", "", "cilium",
"none",
sets.New("kubernetes.azure.com/ebpf-dataplane=cilium")),
)

Context("LoadBalancer", func() {
resourceGroup := "test-resourceGroup"

Expand Down Expand Up @@ -1352,6 +1404,5 @@ func createSDKErrorBody(code, message string) io.ReadCloser {

func ExpectKubeletFlagsPassed(customData string) string {
GinkgoHelper()

return customData[strings.Index(customData, "KUBELET_FLAGS=")+len("KUBELET_FLAGS=") : strings.Index(customData, "KUBELET_NODE_LABELS")]
}
38 changes: 28 additions & 10 deletions pkg/providers/launchtemplate/launchtemplate.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package launchtemplate

import (
"context"
"strconv"
"strings"

"github.com/Azure/go-autorest/autorest/to"
Expand All @@ -38,10 +39,11 @@ import (
const (
karpenterManagedTagKey = "karpenter.azure.com/cluster"

vnetDataPlaneLabel = "kubernetes.azure.com/ebpf-dataplane"
vnetSubnetNameLabel = "kubernetes.azure.com/network-subnet"
vnetGUIDLabel = "kubernetes.azure.com/nodenetwork-vnetguid"
vnetPodNetworkTypeLabel = "kubernetes.azure.com/podnetwork-type"
dataplaneLabel = "kubernetes.azure.com/ebpf-dataplane"
azureCNIOverlayLabel = "kubernetes.azure.com/azure-cni-overlay"
subnetNameLabel = "kubernetes.azure.com/network-subnet"
vnetGUIDLabel = "kubernetes.azure.com/nodenetwork-vnetguid"
podNetworkTypeLabel = "kubernetes.azure.com/podnetwork-type"
)

type Template struct {
Expand Down Expand Up @@ -123,7 +125,7 @@ func (p *Provider) getStaticParameters(ctx context.Context, instanceType *cloudp

subnetID := lo.Ternary(nodeClass.Spec.VNETSubnetID != nil, lo.FromPtr(nodeClass.Spec.VNETSubnetID), options.FromContext(ctx).SubnetID)

if options.FromContext(ctx).NetworkPlugin == consts.NetworkPluginAzure && options.FromContext(ctx).NetworkPluginMode == consts.NetworkPluginModeOverlay {
if isAzureCNIOverlay(ctx) {
// TODO: make conditional on pod subnet
vnetLabels, err := p.getVnetInfoLabels(subnetID)
if err != nil {
Expand All @@ -140,7 +142,7 @@ func (p *Provider) getStaticParameters(ctx context.Context, instanceType *cloudp
// values:
// - cilium

labels[vnetDataPlaneLabel] = consts.NetworkDataplaneCilium
labels[dataplaneLabel] = consts.NetworkDataplaneCilium
}

return &parameters.StaticParameters{
Expand All @@ -162,13 +164,28 @@ func (p *Provider) getStaticParameters(ctx context.Context, instanceType *cloudp
ClusterID: options.FromContext(ctx).ClusterID,
APIServerName: options.FromContext(ctx).GetAPIServerName(),
KubeletClientTLSBootstrapToken: options.FromContext(ctx).KubeletClientTLSBootstrapToken,
NetworkPlugin: options.FromContext(ctx).NetworkPlugin,
NetworkPlugin: getAgentbakerNetworkPlugin(ctx),
NetworkPolicy: options.FromContext(ctx).NetworkPolicy,
SubnetID: subnetID,
ClusterResourceGroup: p.clusterResourceGroup,
}, nil
}

func getAgentbakerNetworkPlugin(ctx context.Context) string {
if isAzureCNIOverlay(ctx) || isCiliumNodeSubnet(ctx) {
return consts.NetworkPluginNone
}
return consts.NetworkPluginAzure
}

func isCiliumNodeSubnet(ctx context.Context) bool {
return options.FromContext(ctx).NetworkPlugin == consts.NetworkPluginAzure && options.FromContext(ctx).NetworkPluginMode == consts.NetworkPluginModeNone && options.FromContext(ctx).NetworkDataplane == consts.NetworkDataplaneCilium
}

func isAzureCNIOverlay(ctx context.Context) bool {
return options.FromContext(ctx).NetworkPlugin == consts.NetworkPluginAzure && options.FromContext(ctx).NetworkPluginMode == consts.NetworkPluginModeOverlay
}

func (p *Provider) createLaunchTemplate(ctx context.Context, params *parameters.Parameters) (*Template, error) {
// merge and convert to ARM tags
azureTags := mergeTags(params.Tags, map[string]string{karpenterManagedTagKey: params.ClusterName})
Expand Down Expand Up @@ -213,9 +230,10 @@ func (p *Provider) getVnetInfoLabels(subnetID string) (map[string]string, error)
return nil, err
}
vnetLabels := map[string]string{
vnetSubnetNameLabel: vnetSubnetComponents.SubnetName,
vnetGUIDLabel: p.vnetGUID,
vnetPodNetworkTypeLabel: consts.NetworkPluginModeOverlay,
subnetNameLabel: vnetSubnetComponents.SubnetName,
vnetGUIDLabel: p.vnetGUID,
azureCNIOverlayLabel: strconv.FormatBool(true),
podNetworkTypeLabel: consts.NetworkPluginModeOverlay,
}
return vnetLabels, nil
}
7 changes: 7 additions & 0 deletions pkg/utils/opts/armopts.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,12 @@ package opts

import (
"net/http"
"os"
"time"

"log/slog"

shPolicy "github.com/Azure/aks-middleware/http/client/azuresdk/policy"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/karpenter-provider-azure/pkg/auth"
Expand All @@ -30,6 +34,9 @@ func DefaultArmOpts() *arm.ClientOptions {
opts.Telemetry = DefaultTelemetryOpts()
opts.Retry = DefaultRetryOpts()
opts.Transport = defaultHTTPClient

logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
opts.PerCallPolicies = append(opts.PerCallPolicies, shPolicy.NewLoggingPolicy(*logger))
return opts
}

Expand Down

0 comments on commit 602f72e

Please sign in to comment.