diff --git a/content/00-pre-reqs/index.md b/content/00-pre-reqs/index.md
index fadf1ace..90a09d1d 100644
--- a/content/00-pre-reqs/index.md
+++ b/content/00-pre-reqs/index.md
@@ -111,15 +111,24 @@ To have `.bashrc` changes take affect in your current terminal, you must reload
## ✅ Verify installation
-Double check that everything in installed and working correctly with:
+Double check that everything is installed and working correctly with:
```bash
+# Verify Azure CLI and Helm are working
# Try commands with tab completion
-k get pods -A
-helm
az
+helm
```
+Now test kubectl - this will verify kubectl is properly installed:
+
+```bash
+# Test kubectl installation
+k get pods -A
+```
+
+
This command may fail with a connection refused error if no Kubernetes cluster is configured yet (for example, when starting fresh) or if your kubeconfig still points to an old or expired cluster from a different project. This is expected behaviour, we'll create and connect to a new cluster in the next section.
+
## 🔐 Login to Azure
The rest of this workshop assumes you have access to an Azure subscription, and have the Azure CLI working & signed into
diff --git a/content/01-cluster/index.md b/content/01-cluster/index.md
index e264cd06..4991443e 100644
--- a/content/01-cluster/index.md
+++ b/content/01-cluster/index.md
@@ -30,8 +30,10 @@ az aks create --resource-group $RES_GROUP \
--no-ssh-key
```
-In case you get an error when creating cluster, `Version x.xx.x is not supported in this region` run the following to
-get the supported Kubernetes versions
+Unsupported Kubernetes Version
+
+If you get error "Version x.xx.x is not supported in this region", run the following to get the supported Kubernetes
+versions
```bash
az aks get-versions --location $REGION -o table
@@ -39,6 +41,26 @@ az aks get-versions --location $REGION -o table
And re-run the create cluster command with a supported version number.
+
+
+Missing Subscription Registration
+
+If you get error `MissingSubscriptionRegistration`, run the following to register the provider:
+
+```bash
+az provider register --namespace Microsoft.ContainerService
+```
+
+You can check the status with:
+
+```bash
+az provider show --namespace Microsoft.ContainerService --query registrationState
+```
+
+Once the status is Registered, re-run the cluster creation command.
+
+
+
This should take around 5 minutes to complete, and creates a new AKS cluster with the following characteristics:
- Two small B-Series _Nodes_ in a single node pool. _Nodes_ are what your workloads will be running on. This is about as
diff --git a/content/02-container-registry/index.md b/content/02-container-registry/index.md
index 3763b491..558a5399 100644
--- a/content/02-container-registry/index.md
+++ b/content/02-container-registry/index.md
@@ -29,6 +29,25 @@ az acr create --name $ACR_NAME --resource-group $RES_GROUP \
> When you pick a name for the resource with `$ACR_NAME`, this has to be **globally unique**, and not contain any
> underscores, dots or hyphens. Name must also be in lowercase.
+Missing Subscription Registration
+
+If you see the error `MissingSubscriptionRegistration`, your Azure subscription isn't yet registered to create Container
+Registry resources. Register the required provider:
+
+```bash
+az provider register --namespace Microsoft.ContainerRegistry
+```
+
+You can check the status with:
+
+```bash
+az provider show --namespace Microsoft.ContainerRegistry --query registrationState
+```
+
+Once the status is Registered, retry creating the registry.
+
+
+
## 📥 Importing Images
For the sake of speed and maintaining the focus on Kubernetes we will import pre-built images from another public
@@ -62,7 +81,7 @@ az acr import --name $ACR_NAME --resource-group $RES_GROUP \
```
If you wish to check and see imported images, you can go over to the ACR resource in the Azure portal, and into the
-'Repositories' section.
+'Services' > 'Repositories' section.
## 🔌 Connect AKS to ACR - as Azure Subscription Owner
diff --git a/content/_includes/main.css b/content/_includes/main.css
index a330c86a..170eb10c 100644
--- a/content/_includes/main.css
+++ b/content/_includes/main.css
@@ -14,6 +14,9 @@
--border-color: #0ea2e6;
--shadow-color: rgba(0, 0, 0, 0.15);
--blockquote-bg: #edf2f7;
+ --troubleshoot-bg: #fff3cd;
+ --troubleshoot-border: #ffc107;
+ --troubleshoot-text: #856404;
}
/* Dark theme colors */
@@ -32,6 +35,9 @@
--border-color: #0ea2e6;
--shadow-color: rgba(0, 0, 0, 0.6);
--blockquote-bg: #283031;
+ --troubleshoot-bg: #3a3a2f;
+ --troubleshoot-border: #ffc107;
+ --troubleshoot-text: #ffd43b;
}
}
@@ -50,6 +56,9 @@
--border-color: #0ea2e6;
--shadow-color: rgba(0, 0, 0, 0.15);
--blockquote-bg: #edf2f7;
+ --troubleshoot-bg: #fff3cd;
+ --troubleshoot-border: #ffc107;
+ --troubleshoot-text: #856404;
}
[data-theme="dark"] {
@@ -66,6 +75,9 @@
--border-color: #0ea2e6;
--shadow-color: rgba(0, 0, 0, 0.6);
--blockquote-bg: #283031;
+ --troubleshoot-bg: #3a3a2f;
+ --troubleshoot-border: #ffc107;
+ --troubleshoot-text: #ffd43b;
}
body {
@@ -247,6 +259,31 @@ blockquote code {
font-style: normal;
}
+/* Troubleshooting note style */
+.troubleshoot {
+ margin: 30px 20px;
+ padding: 15px;
+ color: var(--troubleshoot-text);
+ background-color: var(--troubleshoot-bg);
+ border-left: 5px solid var(--troubleshoot-border);
+ border-radius: 4px;
+ line-height: 150%;
+ transition:
+ color 0.3s ease,
+ background-color 0.3s ease,
+ border-color 0.3s ease;
+}
+
+.troubleshoot::before {
+ content: "⚠️ ";
+ font-style: normal;
+}
+
+.troubleshoot code {
+ background-color: rgba(0, 0, 0, 0.1);
+ color: inherit;
+}
+
abbr {
text-decoration: none;
border-bottom: 1px dotted var(--text-secondary);