Skip to content

Commit b7378df

Browse files
authored
fix: replace DefaultAzureCredential with AzureCLICredential for impro… (#25)
* fix: replace DefaultAzureCredential with AzureCLICredential for improved authentication * fix karpetner helm
1 parent 1c79809 commit b7378df

7 files changed

Lines changed: 25 additions & 19 deletions

File tree

cli/internal/aks/deploy/deploy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func run(ctx context.Context) error {
7676
return err
7777
}
7878

79-
credentials, err := azidentity.NewDefaultAzureCredential(nil)
79+
credentials, err := azidentity.NewAzureCLICredential(nil)
8080
if err != nil {
8181
return err
8282
}

cli/internal/aks/deploy/wireguard.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"text/template"
1111
"time"
1212

13+
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
1314
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
14-
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
1515
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v8"
1616
corev1 "k8s.io/api/core/v1"
1717
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -38,7 +38,7 @@ const (
3838
wgKubeImage = "ghcr.io/b4fun/wg-kube:sha-11e4656"
3939
)
4040

41-
func deployWireGuard(ctx context.Context, credentials *azidentity.DefaultAzureCredential, cfg *utilconfig.Config) error {
41+
func deployWireGuard(ctx context.Context, credentials azcore.TokenCredential, cfg *utilconfig.Config) error {
4242
// Step 1: Get or generate WireGuard keys for the hub
4343
log.Print("Getting WireGuard keys...")
4444

@@ -93,7 +93,7 @@ func deployWireGuard(ctx context.Context, credentials *azidentity.DefaultAzureCr
9393

9494
// getOrCreateWireGuardKeys checks if the wireguard-keys secret exists and returns those keys,
9595
// otherwise generates new keys.
96-
func getOrCreateWireGuardKeys(ctx context.Context, credentials *azidentity.DefaultAzureCredential, cfg *utilconfig.Config) (*wireguard.KeyPair, error) {
96+
func getOrCreateWireGuardKeys(ctx context.Context, credentials azcore.TokenCredential, cfg *utilconfig.Config) (*wireguard.KeyPair, error) {
9797
loader, err := k8s.Loader(ctx, credentials, cfg)
9898
if err != nil {
9999
return nil, err
@@ -144,7 +144,7 @@ func getOrCreateWireGuardKeys(ctx context.Context, credentials *azidentity.Defau
144144
}
145145

146146
// getWireGuardNodeIP retrieves the public and private IP of the WireGuard gateway node from Kubernetes.
147-
func getWireGuardNodeIP(ctx context.Context, credentials *azidentity.DefaultAzureCredential, cfg *utilconfig.Config) (publicIP, privateIP string, err error) {
147+
func getWireGuardNodeIP(ctx context.Context, credentials azcore.TokenCredential, cfg *utilconfig.Config) (publicIP, privateIP string, err error) {
148148
loader, err := k8s.Loader(ctx, credentials, cfg)
149149
if err != nil {
150150
return "", "", err
@@ -219,7 +219,7 @@ func getWireGuardNodeIP(ctx context.Context, credentials *azidentity.DefaultAzur
219219
}
220220

221221
// updateRouteTable updates the route table with the gateway node's private IP.
222-
func updateRouteTable(ctx context.Context, credentials *azidentity.DefaultAzureCredential, cfg *utilconfig.Config, gatewayPrivateIP string) error {
222+
func updateRouteTable(ctx context.Context, credentials azcore.TokenCredential, cfg *utilconfig.Config, gatewayPrivateIP string) error {
223223
routeTablesClient, err := armnetwork.NewRouteTablesClient(cfg.SubscriptionID, credentials, nil)
224224
if err != nil {
225225
return err
@@ -256,7 +256,7 @@ func updateRouteTable(ctx context.Context, credentials *azidentity.DefaultAzureC
256256
}
257257

258258
// associateRouteTableWithSubnets associates the wg-routes route table with the aks and nodes subnets.
259-
func associateRouteTableWithSubnets(ctx context.Context, credentials *azidentity.DefaultAzureCredential, cfg *utilconfig.Config) error {
259+
func associateRouteTableWithSubnets(ctx context.Context, credentials azcore.TokenCredential, cfg *utilconfig.Config) error {
260260
subnetsClient, err := armnetwork.NewSubnetsClient(cfg.SubscriptionID, credentials, nil)
261261
if err != nil {
262262
return err
@@ -307,7 +307,7 @@ func associateRouteTableWithSubnets(ctx context.Context, credentials *azidentity
307307
// deployWireGuardToK8s deploys the WireGuard DaemonSet to the AKS cluster.
308308
func deployWireGuardToK8s(
309309
ctx context.Context,
310-
credentials *azidentity.DefaultAzureCredential,
310+
credentials azcore.TokenCredential,
311311
cfg *utilconfig.Config,
312312
keys *wireguard.KeyPair,
313313
) error {

cli/internal/config/configcmd/defaults.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"os"
77

88
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
9+
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
910

1011
"github.com/Azure/aks-flex/plugin/pkg/services/agentpools/api/features/kubeadm"
1112
"github.com/Azure/aks-flex/plugin/pkg/util/config"
@@ -41,7 +42,17 @@ func OrPlaceholder(val string) string {
4142
// reachable or the required environment variables are not set, it falls back
4243
// to placeholder values that the user must replace manually.
4344
func DefaultKubeadmConfig(ctx context.Context) *kubeadm.Config {
44-
cfg, err := kubeadmutil.FromAKS(ctx)
45+
credentials, err := azidentity.NewAzureCLICredential(nil)
46+
if err != nil {
47+
fmt.Fprintf(os.Stderr, "Warning: could not obtain Azure CLI credentials: %v\n", err)
48+
fmt.Fprintln(os.Stderr, "Using placeholder values — edit the output before applying.")
49+
return kubeadm.Config_builder{
50+
Server: to.Ptr(placeholder),
51+
CertificateAuthorityData: []byte(placeholder),
52+
Token: to.Ptr(placeholder),
53+
}.Build()
54+
}
55+
cfg, err := kubeadmutil.FromAKS(ctx, credentials)
4556
if err != nil {
4657
fmt.Fprintf(os.Stderr, "Warning: could not retrieve kubeadm config from AKS cluster: %v\n", err)
4758
fmt.Fprintln(os.Stderr, "Using placeholder values — edit the output before applying.")

cli/internal/config/k8sbootstrap/k8sbootstrap.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ func paramsFromContext(ctx context.Context) Params {
183183
return placeholderParams()
184184
}
185185

186-
credentials, err := azidentity.NewDefaultAzureCredential(nil)
186+
credentials, err := azidentity.NewAzureCLICredential(nil)
187187
if err != nil {
188188
warn("could not obtain Azure credentials: %v", err)
189189
return placeholderParams()

cli/internal/config/karpenter/karpenter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func (hc *helmContext) resolve(ctx context.Context) {
110110
return
111111
}
112112

113-
credentials, err := azidentity.NewDefaultAzureCredential(nil)
113+
credentials, err := azidentity.NewAzureCLICredential(nil)
114114
if err != nil {
115115
warn("could not obtain Azure credentials: %v", err)
116116
return

cli/internal/network/deploy/deploy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func run(ctx context.Context) error {
3737
return err
3838
}
3939

40-
credentials, err := azidentity.NewDefaultAzureCredential(nil)
40+
credentials, err := azidentity.NewAzureCLICredential(nil)
4141
if err != nil {
4242
return err
4343
}

plugin/pkg/util/kubeadm/azure.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"context"
55
"fmt"
66

7+
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
78
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
8-
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
99
corev1 "k8s.io/api/core/v1"
1010
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1111
"k8s.io/client-go/tools/clientcmd"
@@ -19,17 +19,12 @@ import (
1919
"github.com/Azure/aks-flex/plugin/pkg/util/k8s"
2020
)
2121

22-
func FromAKS(ctx context.Context) (*kubeadm.Config, error) {
22+
func FromAKS(ctx context.Context, credentials azcore.TokenCredential) (*kubeadm.Config, error) {
2323
cfg, err := config.New()
2424
if err != nil {
2525
return nil, err
2626
}
2727

28-
credentials, err := azidentity.NewDefaultAzureCredential(nil)
29-
if err != nil {
30-
return nil, err
31-
}
32-
3328
kubeconfig, err := k8s.Kubeconfig(ctx, credentials, cfg)
3429
if err != nil {
3530
return nil, err

0 commit comments

Comments
 (0)