After a brief break from the APIC, the auto-provisioning feature is available (again) inside of the APIC GUI starting with APIC version 2.3 release and later. However, if you need it (or want it) and you are running at least APIC 2.2, you can configure the feature via API (i.e., XML or JSON).
Why would you want the auto-provisioning feature? When configured properly, the auto-provisioning feature will automatically upgrade any new switch which is attached to the fabric to the current desired target of code. So, if you have RMA’d a switch and attach it to the fabric, it will upgrade (or downgrade) to the appropriate code, with no further action required on your part. Same story if you are expanding your ACI fabric with new Spines or Leafs.
NOTE – This feature is not intended to take the place of a normal ACI Fabric-wide upgrade process. If you need guidance on performing an ACI Fabric upgrade, check out the Upgrading your ACI Fabric article.
Configuration (for APIC 2.3 up to 4.0)
- Set the “Default Firmware Version” under the Firmware Node Version Tab to your desired Code (i.e., 3.0.2h). Any nodes joining the fabric will be upgraded to that version of code.
NOTE – The version specified in the firmware group policy takes precedence over the version specified in your Default Firmware Version policy. If the switch is not the running desired code, the firmware upgrade is performed at the time of bootscript processing.
Default Firmware Version set to specific code
Admin > Firmware > Firmware Node Firmware
-
- APIC – ENFORCE BOOTSCRIPT VERSION VALIDATION – CHECKED
- DEFAULT FIRMWARE VERSION – TARGET VERSION OF CODE (i.e., 3.0.2h) (do not select “Any”)
- Decommission and Recommission the switch

Configuration (for APIC 4.0 and later)
As you may have noticed, the process of upgrading the fabric changed beginning in 4.0. If you want to know more, take a look at this article – Upgrading your ACI Fabric, the 4.0 Way.
- In order to configure auto-provisioning in 4.0, you’ll need to Set the “Default Firmware Version” under the Admin > Firmware > Infrastructure > Nodes Tab to your desired Code (i.e., 14.0(3d)). Any nodes joining the fabric will be upgraded to that version of code.
Default Firmware Version set to specific code
Admin > Firmware > Infrastructure > Nodes
-
- APIC – ENFORCE BOOTSCRIPT VERSION VALIDATION – CHECKED
- DEFAULT FIRMWARE VERSION – TARGET VERSION OF CODE (i.e., 14.0(3d)) (do not select “Any”)
- Decommission and Recommission the switch

Verification
Once you commissioned your switch, I’d recommend hopping into the console and watching the process (if available). Once you’re in, use the following command to check the status “cat /mit/sys/summary” – What you’re looking for is the “state”, at the end of the output. This should show up as downloading-boot-script. The downloading boot-script state just means that we are downloading the bootscript that points to the appropriate version of code for the fabric.
APIC 2.2 XML code to enable the auto-provisioning feature
In APIC 2.2, the configuration knobs do not show up in the GUI, however they are present under the hood and can be turned on if you know how.
To configure
POST URL — https://{{APIC_IP}}/api/node/mo/uni/fabric/fwrepop.xml
BODY
<firmwareRepoP enforceBootscriptVersionValidation=”yes” defaultSwitchVersion=”any” status=”modified”/>
To verify it has been configured
GET URL – https://{{hostName}}/api/node/mo/uni/fabric/fwrepop.xml
– or –
Login to visore (https://{{APIC_IP}}/visore.html (credentials are your apic username/password)
In the DN field, search for “firmwareRepoP”
You should see the following: