Skip to content

Commit f574895

Browse files
comtalystclaude
andcommitted
refactor: wire up configure* helpers, delete launchtemplate.Provider
Replace the launchtemplate.Provider intermediate abstraction with direct imagefamily.Resolver usage in DefaultVMProvider. The resolveBootstrapAndImageData() bridge function builds StaticParameters locally and calls imagefamily.Resolve() directly, eliminating the 7-layer parameter threading. New vminstancehelpers.go provides buildVMTemplate() with focused configure* helpers (configureStorageProfile, configureOSProfile, configureNetworkProfile, configureBillingProfile, configureSecurityProfile) matching the AKS Machine pattern. Extension spec builders are also extracted here. vminstancenic.go updated to take subnetID/tags directly instead of *launchtemplate.Template, with buildAndCreateNIC() orchestrator. Delete pkg/providers/launchtemplate/launchtemplate.go (Provider struct). tags.go and parameters/ remain as they are still used by imagefamily.Resolve(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8b6d4de commit f574895

File tree

6 files changed

+475
-608
lines changed

6 files changed

+475
-608
lines changed

pkg/operator/operator.go

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ import (
6363
"github.com/Azure/karpenter-provider-azure/pkg/providers/instance"
6464
"github.com/Azure/karpenter-provider-azure/pkg/providers/instancetype"
6565
"github.com/Azure/karpenter-provider-azure/pkg/providers/kubernetesversion"
66-
"github.com/Azure/karpenter-provider-azure/pkg/providers/launchtemplate"
6766
"github.com/Azure/karpenter-provider-azure/pkg/providers/loadbalancer"
6867
"github.com/Azure/karpenter-provider-azure/pkg/providers/networksecuritygroup"
6968
"github.com/Azure/karpenter-provider-azure/pkg/providers/pricing"
@@ -88,7 +87,6 @@ type Operator struct {
8887
KubernetesVersionProvider kubernetesversion.KubernetesVersionProvider
8988
ImageProvider imagefamily.NodeImageProvider
9089
ImageResolver imagefamily.Resolver
91-
LaunchTemplateProvider *launchtemplate.Provider
9290
PricingProvider *pricing.Provider
9391
InstanceTypesProvider instancetype.Provider
9492
VMInstanceProvider *instance.DefaultVMProvider
@@ -187,20 +185,6 @@ func NewOperator(ctx context.Context, operator *operator.Operator) (context.Cont
187185
instanceTypeProvider,
188186
azClient.NodeBootstrappingClient,
189187
)
190-
launchTemplateProvider := launchtemplate.NewProvider(
191-
ctx,
192-
imageResolver,
193-
imageProvider,
194-
lo.Must(getCABundle(operator.GetConfig())),
195-
options.FromContext(ctx).ClusterEndpoint,
196-
azConfig.TenantID,
197-
azConfig.SubscriptionID,
198-
azConfig.ResourceGroup,
199-
options.FromContext(ctx).KubeletIdentityClientID,
200-
options.FromContext(ctx).NodeResourceGroup,
201-
azConfig.Location,
202-
options.FromContext(ctx).ProvisionMode,
203-
)
204188
loadBalancerProvider := loadbalancer.NewProvider(
205189
azClient.LoadBalancersClient,
206190
cache.New(loadbalancer.LoadBalancersCacheTTL, azurecache.DefaultCleanupInterval),
@@ -213,7 +197,7 @@ func NewOperator(ctx context.Context, operator *operator.Operator) (context.Cont
213197
vmInstanceProvider := instance.NewDefaultVMProvider(
214198
azClient,
215199
instanceTypeProvider,
216-
launchTemplateProvider,
200+
imageResolver,
217201
loadBalancerProvider,
218202
networkSecurityGroupProvider,
219203
unavailableOfferingsCache,
@@ -223,6 +207,10 @@ func NewOperator(ctx context.Context, operator *operator.Operator) (context.Cont
223207
options.FromContext(ctx).ProvisionMode,
224208
options.FromContext(ctx).DiskEncryptionSetID,
225209
env,
210+
lo.Must(getCABundle(operator.GetConfig())),
211+
options.FromContext(ctx).ClusterEndpoint,
212+
azConfig.TenantID,
213+
azConfig.ResourceGroup,
226214
)
227215
aksMachineInstanceProvider := instance.NewAKSMachineProvider(
228216
azClient,
@@ -243,7 +231,6 @@ func NewOperator(ctx context.Context, operator *operator.Operator) (context.Cont
243231
KubernetesVersionProvider: kubernetesVersionProvider,
244232
ImageProvider: imageProvider,
245233
ImageResolver: imageResolver,
246-
LaunchTemplateProvider: launchTemplateProvider,
247234
PricingProvider: pricingProvider,
248235
InstanceTypesProvider: instanceTypeProvider,
249236
VMInstanceProvider: vmInstanceProvider,

0 commit comments

Comments
 (0)