StyleBook configuration

Create a StyleBook to perform non-CRUD operations

StyleBooks manage NetScaler configurations by computing the necessary configuration objects on the NetScaler 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 NetScaler configuration objects support a few operations other than create, update, or delete (CRUD operations). For example, a load balancer object (lbvserver) or a NetScaler feature object (nsfeature) can support the “enable” or “disable” operation. Similarly, NetScaler certkeys support the “link” and “unlink” operation to link or unlink a certificate to another certificate. These operations on NetScaler objects are called as non-CRUD operations.

This section describes how to perform non-CRUD operations on configuration objects that support them using StyleBooks.

Note

The binding between configuration objects (for example, bind a certkey to a lbvserver) is not a non-CRUD operation because NITRO bindings are represented as configuration objects in their own right. These objects are created and deleted like any other NetScaler configuration object.

Supporting the non-CRUD operations

A construct called meta-properties is added in the component at the same level as the properties construct. The supported attribute supported in this construct is called action. This attribute can take values like enable, disable, link, unlink, import, export, create, archive, and apply.

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 this example, the my-lbvserver-comp component is of the type ns::lbvserver. The “ns” is the prefix that refers to the namespace netscaler.nitro.config and version ** 10.5 that you specified in the import-stylebooks section. The lbvserver is a NITRO resource in this namespace. As an implicit action, the StyleBook creates lbvserver and then completes the “enable” operation on it.

The action in the meta-properties is done on the configuration object only during the creation of the configPack. Updates to the configPack do not perform non-CRUD actions.

You can specify expressions for a meta-property. These expressions dynamically apply the valid meta-property actions for NetScaler objects.

Example:

parameters:
-
    name: meta-action-lbvserver
    type: string
    default: disable
    allowed-values:
      - enable
      - disable

components:
  -
    name: c1
    type: ns::lbvserver
    meta-properties:
      action: $parameters.meta-action-lbvserver
    properties:
      name: $parameters.lbvserver
      ipv46: $parameters.ip
      port: 80
      servicetype: HTTP
<!--NeedCopy-->

In this example, a StyleBook user can specify a valid meta property action while creating a configuration pack.

Create a StyleBook to perform non-CRUD operations