Application Delivery Management

Flexible policy-based device allotment

Citrix Application Delivery Management (ADM) assigns Citrix ADC virtual instances to tenants, based on the SLAs agreed with the tenants. The assignment of virtual instances to tenants creates a one-to-one relation between the instance and the tenant, where a tenant can be assigned to only one service package in the data center.

In some situations, tenants might require more than one instance, or the assignment of instances might not be based on tenants as a criterion, but on other factors such as network ID, or application. In such cases, Citrix ADM allows you to precisely define placement policies based on user-defined expressions in order to assign a load balancer configuration to one of the managed instances.

Placement policies provide the flexibility to decide on the Citrix ADC instance that is used in each load balancer configuration created by users. Flexible placement policies in Citrix ADM provide an added option to the existing method of assigning Citrix ADC instances based on tenants.


You can assign instances to tenants manually or use placement policies to assign instances based on the expressions created. You cannot use both these methods simultaneously on a single service package.

Placement policies are based on Boolean expressions defined over properties of the main LBaaS configuration objects, such as pools and load balancers. The placement policy user interface in Citrix ADM provides pre-defined expressions that you can choose from, to define a customized policy. You can create multiple placement policies for different expressions. So, each tenant can have multiple devices that are defined by the tenant’s requirement.

You have to first select an expression to match a root object that has to be configured later. The root object can be a pool object in case of LBaaS V1, and a load balancer object in case of LBaaS V2. So, the Citrix ADM policy based placements are supported for both LBaaS V1 and V2 APIs. These placement policies are then associated with service packages. Once the root object is placed in an instance, the successive objects in the model are added in the instance.

For example, the pool configuration object can have the following properties:

  • tenant_id

  • name

  • description

  • protocol

  • lb_method

  • subnet_id

  • subname_name

  • admin_state_up

  • status

  • network_id

  • network_type

  • segmentation_id

  • subnet_cidr

  • subnet_gateway_ip

The following are examples that show some of the expressions that uses pool properties to define an expression for the policy:

  1. Pool Name based policy expression

    config["pools"]["name"] =="high-end-pool"
  2. Pool Subnet Name based policy expression

    config ["pools"]["subnet_name"] == "us-west-payment-subnet1"
  3. Load Balancer Subnet Name based policy expression

    config["loadbalancers"]["subnet_name"] == "mas-subnet"

Adding Placement Policy

  1. From the Citrix ADM home page, navigate to Orchestration > Cloud Orchestration > Placement Policy, and then click Add.

  2. On the Add Placement Policy page, set the following parameters:

    1. Name - type a name for the placement policy

    2. Frequently Used Expressions - select an expression from the drop-down list.

    3. Expression - a logical (Boolean) expression is populated in this field based on the expression you have selected in the earlier field. Edit the field names as required.


    When creating multiple policies, make sure that the policies are exclusive to one another.

    Add placement policy

  3. Click OK.

  4. Navigate to Orchestration > Cloud Orchestration > OpenStackService Packages, and then click Add.

  5. On the Service Package page, set the following parameters:

    1. Name - type a name for the service package

    2. Isolation Policy - select Shared policy

      In shared isolation policy, the load balancer configuration of a tenant coexists with the load balancer configuration of other tenants in the device allocated to the tenant.

    3. Device Type - select a preprovisioned Citrix ADC VPX or Citrix ADC MPX

      Select Allot one device if you want all the load balancer configurations of a tenant to be tied to one device. Select Allot many devices if you want each load balancer configurations of a tenant to be distributed on several devices based on placement policies.


      Citrix ADC SDX has to be added in the service packages as Citrix ADC VPX instances only, as a Citrix ADC SDX has a Citrix ADC VPX provisioned on it.

    4. Placement Method - select Least Configured

      When Least Configured is selected, the Citrix ADC instance that has the least number of pool members configured at that point in time is chosen as the device for the tenant.

      Service Package

  6. Click Continue.

  7. In Assign Devices section, add the available Citrix ADC devices to the configured devices list.

    Service Package - Least configured placement method

  8. Click Continue.

  9. In Assign Placement Policies/OpenStack Tenants section, add the placement policy that you created earlier.

    Assign placement policies


    If the policy is not found, the fallback mechanism is revived, and the Citrix ADM assigns Citrix ADC instances based on tenants. If the tenant is not part of any service package, the Citrix ADM displays an error message that says:

    “Tenant admin is not part of any Service Package and there is no default Service Package”.

  10. Click Continue, and then click Done.

Flexible policy-based device allotment