Latest release version: 4.0.0, Latest-release-tag: v4.0.0
Latest Release Notes:
read here
NCM Self-Service DSL refers to the Domain-Specific Language (DSL) used in NCM Self-Service (formerly Calm), an application management platform. DSL is a specialized Python based programming language that allows users to define and automate tasks and application workflows within their infrastructure as code (IaC). It also has support for executing CLI commands empowering users to interact with and utilize Self-Service features and functionality in a convenient, efficient, and automated manner.
Language design is black art, and building upon a well-established language is design-wise a big win. The language has also solved many issues like scoping, modules, if-else, inheritance, etc. Well established languages have great tooling support: IDEs, syntax checkers, third-party modules, coding practices, better readability, editing, syntax highlighting, code completion, versioning, collaboration, etc. They see much more community improvements as well. Python specifically comes with a very good REPL (read–eval–print-loop). Having an interactive prompt to play around and slowly build objects is an order-of-magnitude improvement in developer productivity. Python is very easy language to learn and use; and most of the ITOps/DevOps community already use Python for scripting.
Complete documentation is available on Nutanix Dev Community Website
- DSL Technical Documentation
- DSL Setup
- DSL Initialization
- DSL CLI commands
- DSL Release Notes
- NCM Self Service Terminology
- DSL Blueprint Architecture
- Introducing the NCM Self Service DSL
- Creating Custom Blueprint
- Generating VM Specs
- Run Custom Actions
- Remote Container Development (Part 1)
- From UI to Code – NCM Self Service DSL and Blueprint Decompile
- Zero-touch CI/CD - VDI Template Creation with NCM Self Service DSL
- Integrating with Azure DevOps CI/CD pipeline
This repository only contains Self-Service DSL command line interface and the python model for different Self-Service enitities. To know more about compiling DSL and contributing suggested changes, refer to the contribution guide.
To raise and track any improvement or a bug, create an open issue in DSL github repository, issue section.