/
128T Conductor service template

128T Conductor service template

The conductor ingest json files

Script Language:   https://shopify.github.io/liquid/

https://docs.128technology.com/docs/config_templates/#creating-a-template


Conductorcopy service to a template
1-Create a blank template ( New way )


1- create a blank template ( Old way )
2- add name and descriptive
3- copy the service to the new template


Advance mode

template → jinja format with {{ }}

modify the parameter to variable


convert to jinja template
example:

"name": "{service_name",             >>>>>      "name": "{{instance.variables['name']}}",



and in the variable:
--------------------
{
  "instances": [
    {
      "name": "Instance_1",
      "variables": {       <<<<<<<<< list of all variables
        "name": "service11_from_template",  <<<<<<<<<<<<<< Name variable 
        "address": [
          "199.1.4.10"
        ]
      }
    },
Generate the service from jinja_template + json variable

click on the magic wand (wink)

Not advanced mode


multiple value ( list ip address, ports )

scripting in the 
multiple
{% for address in addresses %}
  {
    "ipAddress": "{{address}}"
  }{%- if forloop.last == false -%},{%- endif %}
{% endfor %}


          {% for address in instance.variables.addresses %}
            {
            "{{address}},"
            }{%- if forloop.last == false -%},{%- endif %}
          {% endfor %}

create a template from file 



Click New:


>> provide a name and descriptive

Variable from a Source filecsv
convert csv files to json

csv to json and json to csv


csv to json
Source file:
-----------
name_service, dst_ip_address,dst_protocol,dst_port
service1, 10.0.19.1,tcp,22

name_service, accessPolicy, accessPolicy,dst_ip_address,dst_protocol,dst_port,dst_port
service1, tenant1, tenant2, 10.0.19.1,tcp,80,81


JSON file:
---------
[
  {
    "name_service": "service1",
    "dst_ip_address": "10.0.19.1",
    "dst_protocol": "tcp",
    "dst_port": 22
  }
]
json Template
{
  "authority": {
    "service": [
      {
        "name": "<service_name>",
        "accessPolicy": [
>>>>> loop if more than one
          {
            "source": "<tenant_name1>"
          },
          {
            "source": "<tenant_name2>"
          }
<<<<<<<
        ],
        "description": "send private subnet to the HQ",
        "security": "internal",
        "address": [
          "10.1.6.0/24",
          "10.1.16.0/24"
        ],
        "transport": [
          {
            "protocol": "icmp"
          },
          {
            "protocol": "tcp",
            "portRange": [
              {
                "startPort": "22"
              },
              {
                "startPort": "443"
              },
              {
                "startPort": "80"
              }
            ]
          }
        ]
      }
json for variable
{
  "instances":[
    {
      "service_name": "service1",
      "dst_ip_address": "10.0.19.1",
      "dst_protocol": "tcp",
      "dst_port": 22
      "accessPolicy":[
         "source": "<tenant_name1>",
         "source": "<tenant_name2>"
       ]
    }
  ]
}
Rest API










Related content

3.2: Configure Services
3.2: Configure Services
More like this
SSR and Conductor on AWS
SSR and Conductor on AWS
More like this
5- Complete site creation with json files
5- Complete site creation with json files
More like this
create virtual networks
create virtual networks
More like this
list and read resources with Contrail API
list and read resources with Contrail API
More like this
Heat template to create VM
Heat template to create VM
More like this