Connect to an AKS or ARO cluster and configure kubectl/oc context
Connect to Azure Kubernetes Service (AKS) or Azure Red Hat OpenShift (ARO) clusters and automatically configure your local kubectl/oc context. Use this when you need to authenticate and set up access to Azure-managed Kubernetes clusters for management tasks.
/plugin marketplace add kcns008/cluster-code/plugin install kcns008-cloud-azure-plugins-cloud-azure@kcns008/cluster-codeConnect to an AKS or ARO cluster and configure your local kubectl/oc context for cluster management.
Auto-detect cluster type (if not specified):
# Try AKS first
if az aks show --name <name> --resource-group <resource-group> &>/dev/null; then
CLUSTER_TYPE="aks"
# Try ARO
elif az aro show --name <name> --resource-group <resource-group> &>/dev/null; then
CLUSTER_TYPE="aro"
else
echo "❌ Cluster not found in resource group"
exit 1
fi
Get cluster information:
az aks show --name <name> --resource-group <resource-group>az aro show --name <name> --resource-group <resource-group>Check cluster state:
provisioningState is "Succeeded"powerState is "Running"Get kubeconfig credentials:
az aks get-credentials \
--resource-group <resource-group> \
--name <cluster-name> \
${ADMIN:+--admin} \
--overwrite-existing
Verify connection:
kubectl cluster-info
kubectl get nodes
Display connection info:
✅ Connected to AKS cluster: <cluster-name>
Context: <cluster-name>
API Server: <api-endpoint>
Kubernetes Version: <version>
Nodes: <node-count>
Current context set to: <cluster-name>
Get cluster credentials:
# Get kubeadmin credentials
CREDENTIALS=$(az aro list-credentials \
--name <cluster-name> \
--resource-group <resource-group> \
--output json)
KUBEADMIN_USER=$(echo $CREDENTIALS | jq -r '.kubeadminUsername')
KUBEADMIN_PASS=$(echo $CREDENTIALS | jq -r '.kubeadminPassword')
# Get API server URL
API_SERVER=$(az aro show \
--name <cluster-name> \
--resource-group <resource-group> \
--query 'apiserverProfile.url' \
--output tsv)
# Get console URL
CONSOLE_URL=$(az aro show \
--name <cluster-name> \
--resource-group <resource-group> \
--query 'consoleProfile.url' \
--output tsv)
Login with oc CLI:
oc login $API_SERVER \
--username=$KUBEADMIN_USER \
--password=$KUBEADMIN_PASS \
--insecure-skip-tls-verify
Verify connection:
oc cluster-info
oc get nodes
oc whoami
Display connection info:
✅ Connected to ARO cluster: <cluster-name>
Context: <cluster-name>/<namespace>/kubeadmin
API Server: <api-server>
OpenShift Version: <version>
Console: <console-url>
Username: kubeadmin
⚠️ IMPORTANT: The kubeadmin user has cluster-admin privileges.
For production use, create a dedicated user with appropriate RBAC.
Current context set to: <context-name>
Automatically run cluster-code init:
cluster-code init --context <cluster-context>
Update cluster configuration:
Quick health check:
cluster-code status --quick
Show cluster summary:
Cluster Health Summary:
- API Server: ✅ Healthy
- Nodes: ✅ All Ready (5/5)
- System Pods: ✅ All Running
- Resource Usage: ✅ Normal (CPU: 25%, Memory: 40%)
Run full diagnostics: cluster-code diagnose
For ARO clusters, recommend creating a dedicated user:
📋 ARO Post-Connection Steps:
1. Create an Azure AD user or group for cluster access:
https://learn.microsoft.com/en-us/azure/openshift/configure-azure-ad-cli
2. Grant cluster-admin role:
oc adm policy add-cluster-role-to-user cluster-admin <user@domain.com>
3. Create project and grant permissions:
oc new-project my-app
oc policy add-role-to-user admin <user@domain.com> -n my-app
For AKS clusters, recommend Azure AD integration:
📋 AKS Post-Connection Steps:
1. Enable Azure AD integration (if not already enabled):
az aks update --resource-group <rg> --name <name> --enable-aad
2. Configure RBAC with Azure AD:
kubectl create clusterrolebinding <binding-name> \
--clusterrole=cluster-admin \
--user=<azure-ad-user>
3. Use AAD credentials for future connections:
az aks get-credentials --resource-group <rg> --name <name> --overwrite-existing
Cluster not found:
❌ Cluster '<name>' not found in resource group '<resource-group>'
List available clusters:
cluster-code azure-cluster-list
Cluster not ready:
⚠️ Cluster is in '<provisioning-state>' state
Wait for cluster to be ready, then try again:
az <aks|aro> show --name <name> --resource-group <rg> --query provisioningState
AKS cluster stopped:
⚠️ Cluster is stopped
Start the cluster:
az aks start --name <name> --resource-group <resource-group>
This may take 5-10 minutes.
Insufficient permissions:
❌ Insufficient permissions to get cluster credentials
Required RBAC roles:
- AKS: "Azure Kubernetes Service Cluster User" or "Contributor"
- ARO: "Contributor" or "Owner"
Contact your Azure administrator to request access.
kubectl/oc not installed:
⚠️ kubectl/oc CLI not found
Install:
- kubectl: https://kubernetes.io/docs/tasks/tools/
- oc: https://docs.openshift.com/container-platform/latest/cli_reference/openshift_cli/getting-started-cli.html
Use admin credentials sparingly:
--admin for AKS when necessaryMultiple clusters:
kubectl config use-context <name>kubectl config get-contextsSecurity:
az aro update --name <name> --resource-group <rg> --client-id <id> --client-secret <secret>ARO-specific:
Provide clear, structured output with:
After connection, show:
📍 Current Kubernetes Context:
Name: <cluster-name>
Cluster: <api-server>
User: <user>
Namespace: <default-namespace>
Switch contexts:
kubectl config use-context <other-context>
View all contexts:
kubectl config get-contexts