diff --git a/docs/assets/scripts/developer/k3d-dev.sh b/docs/assets/scripts/developer/k3d-dev.sh
index b2ab6cdbdb212a2891b9785b5bf696840ae6ea47..f2f1fbadcb58800d9d323eb23928c62a11379fb5 100755
--- a/docs/assets/scripts/developer/k3d-dev.sh
+++ b/docs/assets/scripts/developer/k3d-dev.sh
@@ -409,24 +409,31 @@ ssh -i ~/.ssh/${KeyName}.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes u
 # Handle MetalLB cluster resource creation
 if [[ "$METAL_LB" == true ]]; then
   echo "installing MetalLB"
-  ssh -i ~/.ssh/${KeyName}.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes ubuntu@${PublicIP} "kubectl create -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml"
-  ssh -i ~/.ssh/${KeyName}.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes ubuntu@${PublicIP} "kubectl create -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml"
+  ssh -i ~/.ssh/${KeyName}.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes ubuntu@${PublicIP} "kubectl create -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-native.yaml"
+	# Wait for controller to be live so that validating webhooks function when we apply the config
+	echo "waiting for MetalLB controller"
+	ssh -i ~/.ssh/${KeyName}.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes ubuntu@${PublicIP} "kubectl wait --for=condition=available --timeout 120s -n metallb-system deployment controller"
 
   ssh -i ~/.ssh/${KeyName}.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes ubuntu@${PublicIP} <<- 'ENDSSH'
 	#run this command on remote
 	cat << EOF > metallb-config.yaml
-	apiVersion: v1
-	kind: ConfigMap
+	apiVersion: metallb.io/v1beta1
+	kind: IPAddressPool
 	metadata:
+	  name: default
 	  namespace: metallb-system
-	  name: config
-	data:
-	  config: |
-	    address-pools:
-	    - name: default
-	      protocol: layer2
-	      addresses:
-	      - 172.20.1.240-172.20.1.243
+	spec:
+	  addresses:
+	  - 172.20.1.240-172.20.1.243
+	---
+	apiVersion: metallb.io/v1beta1
+	kind: L2Advertisement
+	metadata:
+	  name: l2advertisement1
+	  namespace: metallb-system
+	spec:
+	  ipAddressPools:
+	  - default
 	EOF
 	ENDSSH