Integrate with OpenStack Heat services
The OpenStack Neutron LBaaS enables core load balancing services, such as load balancing, SSL offloading, and content switching, for applications. LBaaS is managed through a REST API, and the API allows tenants to make REST calls to create, update, and delete LBaaS objects. Because LBaaS provides load balancing services, it does not allow use of the more advanced Citrix ADC features during the orchestration process. The Citrix ADC Heat plug-in overcomes this limitation.
Heat Orchestration Service
The OpenStack Heat orchestration service allows deployment of complex cloud applications on the basis of templates. The Heat orchestration template (HOT) describes the infrastructure for a cloud application in text files that are readable and writable by humans, and can be managed by version control tools. YAML, a structured language, is used to write these templates. The HOT template allows you to create most of the OpenStack resource types and specifies the relationships among the resources defined within it. The Citrix ADC Heat plug-in allows you to configure advanced application delivery controller (ADC) functionalities on any Citrix ADC instance.
Citrix ADC StyleBooks
Citrix Application Delivery Management (ADM) StyleBooks can be used to create and configure Citrix ADC functionalities. Just like Heat templates, the StyleBooks are also written in YAML. A separate StyleBooks can be created for each functionality, and a single StyleBooks can be used to deploy configurations on multiple Citrix ADC instances.
During Citrix ADC integration with OpenStack, Citrix ADM publishes all Citrix ADM StyleBooks as a resource in the Heat service. This includes both the StyleBooks that are shipped with Citrix ADM and the StyleBooks that are created by the user at a later point of time. The Heat template allows you to configure the advanced features of Citrix ADCs using these StyleBooks resources.
Workflow to Configure Citrix ADC Instances using Heat
The following flowchart illustrates the workflow for deploying the Heat stack:
Perform the following tasks as a cloud administrator:
To configure Heat services in OpenStack:
Download Citrix ADC bundles for OpenStack
Install the Citrix ADC bundles in OpenStack. In Citrix ADM, navigate to Downloads and download the Citrix ADC driver bundles, untar the bundles, and copy the contents of the Heat folder in the bundle to the Heat engine resources directory in OpenStack. The directory path is as follows: /opt/stack/heat/heat/engine/resources/netscaler_resources
Create a section “netscaler_plugin” in the heat.conf file, and update the following parameters in that section:
When the communication is HTTP, the parameters are updated as follows:
When the communication is https, the parameters are updated as follows:
If user sets ssl_cert_verify to be “False,” Citrix ADM sends verify=False in the request calls, which disables the SSL certificate validation. If ssl_cert_verify is set to “True” and cert_file_path entry is present, Citrix ADM sends this path in the verify parameter of request, otherwise Citrix ADM sends verify=True.
For deploying Citrix ADM in “High Availability” mode, update the following parameters in heat.conf file:
NMAS_BASE_URI=<IP address of the front-end virtual server>
Restart the Heat service in OpenStack.
When you restart the Citrix ADC Heat services in OpenStack, all the defined Citrix ADM StyleBooks are imported into Heat as resources. Also, the Citrix ADC network resource and the certificate resource are imported into OpenStack as Citrix ADC Heat resources.
Register Citrix ADM with OpenStack.
In Citrix ADM, navigate to Orchestration > Cloud Orchestration > OpenStack, and click Configure OpenStack Settings.
In Configure OpenStack Settings page, you can set the parameters to configure OpenStack. You have two options here: Default and Customized.
Select Default if the OpenStack services are running on default ports. Enter the following parameters:
OpenStack Controller IP Address
Admin user name
OpenStack Admin Tenant
Citrix ADC Driver and Heat password
This is the same password (NMAS_PASSWORD) that you entered in the heat.conf file.
Create service packages and define the SLAs with your tenant.
A tenant is created in Citrix ADM for each user during OpenStack registration, and the tenant information is used by both the LBaaS driver and the Heat plug-in. The Heat plug-in uses this information to contact Citrix ADM to import StyleBooks as Heat resources in OpenStack.
For more information about creating service packages and other pre-configuration tasks in Citrix ADM and OpenStack, see Integrating Citrix ADM with OpenStack Platform.
Observe that all the relevant StyleBooks in Citrix ADM are imported into OpenStack Heat as resources. Also, observe that the Citrix ADC network resource and Citrix ADC certificate resource are imported into OpenStack Heat as resources.
Currently, you can use only the StyleBooks that are shipped with Citrix ADM.
Your tenant can now create the Heat template in OpenStack, enter the values of the required Heat parameters, and deploy the Heat stack. When the Heat stack is deployed, the configuration is pushed to Citrix ADM, and the required Citrix ADC instances are configured.
To prepare Heat template and launch Heat stack:
In OpenStack, the tenant can create a Heat orchestration template (HOT) by using the Heat resources.
In OpenStack Horizon, the tenant admin can navigate to Project > Orchestration > Stacks to create the Heat template and launch the Heat Stack. There are two ways to create HOT:
- File - Select the updated template from the local directory
- Direct input - Copy and paste the YAML contents from the template in the window
After successfully deploying the stack, the tenant can update the stack by using the Change Stack Template. But the subnet information and the virtual IP address (VIP) that was provided initially during creation of stack cannot be modified.
After the tenant deploys the stack, navigate to Orchestration > Cloud Orchestration > OpenStack > Requests in Citrix ADM to observe the lists of tasks. Also, navigate to Applications > Configuration in Citrix ADM to observe that the Citrix ADC instances are successfully configured in the form of StyleBooks configuration packs.
An Example of a Citrix ADM StyleBooks:
The following image shows an example of how a Citrix ADM StyleBooks is constructed and briefly explains the components. For more information about Citrix ADM StyleBooks and how to use the shipped StyleBooks, see StyleBooks.
An Example of a Heat Template:
The following image shows the structure of a Heat template defined in YAML, and points to the StyleBooks resources and Citrix ADC network resources that are imported as Heat resources.
For more information about Heat services and how to create templates, see OpenStack Heat documentation.