Skip to content

Provisioning Contrail Networking components and Contrail Openstack in separate nodes

sgurumurthy edited this page Sep 1, 2017 · 2 revisions

The contrail-networking-docker package has been introduced where the the customers can have their own openstack solution and use the contrail-networking solution. In this case we are covering the case where customers want to install Contrail networking components separately and the Openstack is provisioned using Contrail Openstack

The following are things that needs to be done for provisioning the contrail-networking docker image.

  1. Add the container networking image using the networking json file

Contrail-networking-docker tgz image json

{
    "image": [
        {
            "category": "package",
            "id": "<ID>",
            "path": "< Path to contrail-networking-docker tgz>",
            "type": "contrail-ubuntu-package",
            "version": "mainline",
            "parameters": {
                "openstack_sku": "mitaka"
            }
        }
    ]
}
  1. Add the container cloud image using the container-cloud json file (This is needed only to bring up Openstack on a separate cluster).

Contrail-cloud-docker tgz image json

{
    "image": [
        {
            "category": "package",
            "id": "<ID>",
            "path": "< Path to contrail-cloud-docker tgz>",
            "type": "contrail-ubuntu-package",
            "version": "mainline",
        }
    ]
}
  1. Need an external Openstack. Create a separate cluster for provisioning Openstack. The cluster json for provisioning only Openstack will look like this:

Openstack cluster json

{ 
    "cluster": [
        {
            "id": "<ID>",
            "parameters": {
                "provision": {
                    "contrail": {
                        "config" : {
                            "config_ip_list": ["<Control Data IP of Config Node>"]
                        }
                    },
                    "openstack": {
                        "openstack_manage_amqp": true,
                         "keystone": {
                            "admin_password": "contrail123"
                         }
                    }
                }
            }
        }
    ]
 }
  1. Create a separate cluster for provisioning containers. Specify the external openstack ip in the json file to point to the external Openstack

Container cluster json

{
    "cluster": [
        {
            "id": "<ID>",
            "parameters": {
                 "provision": {
                    "contrail_4": {
                        "keystone_config": {
                            "ip": "<Keystone Ip>",
                            "admin_password": "contrail123",
                            "admin_tenant": "admin"
                        },
                        "global_config": {
                             "external_rabbitmq_servers": ["<Control data ip of Openstack Node>"]
                        },
                    },
                    "openstack": {
                        "external_openstack_ip": "Control data ip of Openstack Node"
                    }
                }
            }
        }
    ]
}
  1. The server jsons for Openstack and Container provisioning will look like this

Container server json

{
"server": [
        {
            "id": "<id>",
            "mac_address": "c4:54:44:44:d7:4a",
            "ip_address": "172.16.70.30",
            "network" : {
                  "interfaces": [
                    {
                        "dhcp": "true",
                        "ip_address": "172.16.70.30/24",
                        "mac_address": "c4:54:44:44:d7:4a",
                        "name": "em1",
                     }
                ],
                "management_interface": "em1",
                "provisioning": "kickstart"
            },
            "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-compute","contrail-controller"],
            "cluster_id": "config-cluster",
            "subnet_mask": "255.255.255.0",
            "password": "<password>",
            "domain": "<domain>",
            "ipmi_address": "<ipmi_address>",
            "ipmi_username":"<ipmi_username>",
            "ipmi_password":"<ipmi_password>",
          }
 ]
}

Openstack server json

{
"server": [
        {
            "id": "<id>",
            "mac_address": "c4:54:44:44:d6:bd",
            "ip_address": "172.16.70.40",
            "network" : {
                  "interfaces": [
                    {
                        "dhcp": "true",
                        "ip_address": "172.16.70.40/24",
                        "mac_address": "c4:54:44:44:d6:bd",
                        "name": "em1"
                    }
                ],
                "management_interface": "em1",
                "provisioning": "kickstart",
             },
            "roles" : ["openstack"],
            "cluster_id": "openstack-cluster",
            "password": "<password>",
            "domain": "<domain>",
            "ipmi_address": "<ipmi_address>",
            "ipmi_username":"<username>",
            "ipmi_password":"<password>"
         }
  ]
}
  1. Provision the Openstack node with the contrail-cloud-docker tgz image that was added

server-manager provision --cluster_id <openstack-cluster> <contrail_cloud_docker_image>

  1. Provision the contrail-networking docker container with the usual command

server-manager provision --cluster_id <config-cluster> <contrail_networking_docker_image>

Clone this wiki locally