Azure / Azure/AKSFlexNode

Arc machine RG and AKS cluster RG must match (hard-coded in v0.1.0)

Open
#182 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
14
Forks
28
Avg merge
4d 13h
Merged PRs (30d)
12

Description

Hi team, first off — thanks for v0.1.0. We've been putting the agent through a 3-node Raspberry Pi 5 rack as the edge tier for an AKS cluster (part of an edge-tolerance demo), and wanted to share a few observations from the journey. Apologies if any of these are already known or have workarounds we missed.

## What we observed

In Arc mode the installer seems to look up the target AKS cluster in the same resource group as the Arc machine. In `pkg/arc/arc_installer.go` we noticed:

```go
clusterRG := arcConfig.ResourceGroup
```

In our test the Arc machine lived in `rg-edge` and the cluster lived in `rg-aks`, and `listClusterAdminCredentials` returned 404 because the agent looked for the cluster in `rg-edge`. Moving the Arc machine into the same RG worked around it.

## Impact for our scenario

Several customer topologies we're prototyping for (retail, manufacturing) keep edge devices in a per-site or per-region RG and the managed-service control plane in a separate platform-team RG, mainly for blast-radius, RBAC scoping, billing and lifecycle reasons. Putting them in one RG is a tough conversation, so we wanted to flag this early.

## One possible direction

Would it be feasible to add an explicit `targetCluster.resourceGroup` (and optionally `targetCluster.subscriptionID`) to the agent config, defaulting to the Arc machine's RG/sub for backward compatibility? Happy to test a prototype on the Pi rack if useful.

Version tested: v0.1.0 (git 65d8d38, build 2026-05-22).

---

## Other observations from the same Pi-rack edge demo

- #183 — Agent should preflight RBAC permissions before `assignRBACRoles`
- #184 — Hostname casing not normalized; PascalCase machine names fail node validation
- #185 — Kubelet MI exec credential does not propagate Arc HIMDS env vars
- #186 — `validateExclusiveAuthSettings` treats Arc and bootstrap-token as mutually exclusive
- #187 — Agent could auto-mint kubelet bootstrap-token when Arc/MI/SP credentials are available
- #188 — `kube1` systemd-nspawn launcher passes `--network-veth` but actually shares host netns

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in pkg/arc/arc_installer.go and trace listClusterAdminCredentials, where clusterRG is currently taken from arcConfig.ResourceGroup. Review the agent configuration path and make the target cluster resource group, and optionally subscription, explicit while preserving the same-resource-group behavior; verify both same-RG and separate-RG scenarios.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, go, kubernetes
Domain
cloud, infrastructure
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
57/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.