Create a StyleBook to perform non-CRUD operations
StyleBooks manage Citrix ADC configurations by computing the necessary configuration objects on the Citrix ADC instances. These objects are added, updated or removed from the instance each time you create or update a ConfigPack. That is when you specify the “desired state.”
However, some Citrix ADC configuration objects support a few operations other than create, update or delete (CRUD operations). For example, a load balancer object (lbvserver) or a Citrix ADC feature object (nsfeature) can support the “enable” or “disable” operation. Similarly, Citrix ADC certkeys support the “link” and “unlink” operation to link or unlink a certificate to another certificate. These operations on Citrix ADC objects are called as non-CRUD operations. This section describes how to perform non-CRUD operations on configuration objects that support them using StyleBooks.
The binding between configuration objects (for example, bind a certkey to a lbvserver) is not considered a non-CRUD operation. This is because Nitro bindings are represented as configuration objects in their own right. These objects are created and deleted like any other Citrix ADC configuration object.
Supporting the non-CRUD operations
A new construct called “meta-properties” is added in the component at the same level as the “properties” construct. The only attribute supported in this construct currently is called “action” This attribute can take values like “enable” or “disable” that are supported by that configuration object.
components: - name: my-lbvserver-comp type: ns::lbvserver meta-properties action: enable properties: name: $parameters.name servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg <!--NeedCopy-->
In the above example, the “my-lbvserver-comp” component is of type “ns::lbvserver.” The “ns” is the prefix that refers to the namespace netscaler.nitro.config and version 10.5 that you had specified in the import-stylebooks section. The “lbvserver” is a NITRO resource in this namespace. As an implicit action, the lbvserver is first created by the StyleBook; then the “enable” operation is performed on it.
The action specified in the meta-properties is performed on the configuration object only during the creation of the ConfigPack. Updates to the ConfigPack do not perform non-CRUD actions.
The value of the action attribute cannot be a StyleBook expression that is evaluated dynamically.