ASM is intended to automate the processes involved in provisioning, configuring, and managing bare metal hardware: chassis, servers, switches, and networked storage devices. ASM helps in automating processes related to hardware discovery, operating system installation, virtual network creation, and firmware management.
At the highest level of the deployment stack, ASM has the ability to install certain applications on a provisioned machine as part of the deployment process. Only a handful of native applications are available in ASM and thus the application SDK provides a mechanism to extend the ability of ASM to deploy additional applications.
ASM utilizes Puppet to install applications. Thus for any application, one needs to create or utilize an existing Puppet module or modules. The Application SDK is then a way to make ASM act as a Puppet external node classifier and to map Puppet class and resource parameters to the ASM UI.