
{#
Copyright 2017-present Open Networking Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}


tosca_definitions_version: tosca_simple_yaml_1_0

imports:
   - custom_types/networktemplate.yaml
   - custom_types/network.yaml
   - custom_types/slice.yaml
   - custom_types/site.yaml

description: management network config, generated by rcord profile

topology_template:
  node_templates:

# site, fully created in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        name: {{ site_name }}

# management (vtn: MANAGEMENT_LOCAL) network
    management_template:
      type: tosca.nodes.NetworkTemplate
      properties:
        name: management_template
        visibility: private
        translation: none
        vtn_kind: MANAGEMENT_LOCAL

    management:
      type: tosca.nodes.Network
      properties:
        name: management
        # ip_version: 4
        subnet: {{ vtn_net_management_local_cidr }}
        permit_all_slices: true
      requirements:
        - template:
            node: management_template
            relationship: tosca.relationships.BelongsToOne
        - owner:
            node: slice#{{ site_name }}_management
            relationship: tosca.relationships.BelongsToOne

{% if use_vtn_net_management_host %}
# management_host (vtn: MANAGEMENT_HOST) network
    management_host_template:
      type: tosca.nodes.NetworkTemplate
      properties:
        name: management_host_template
        visibility: private
        translation: none
        vtn_kind: MANAGEMENT_HOST

    management_host:
      type: tosca.nodes.Network
      properties:
        name: management_host
        # ip_version: 4
        subnet: {{ vtn_net_management_host_cidr }}
        start_ip: {{ vtn_net_management_host_range_xos_low }}
        end_ip: {{ vtn_net_management_host_range_xos_high }}
        permit_all_slices: true
      requirements:
        - template:
            node: management_host_template
            relationship: tosca.relationships.BelongsToOne
        - owner:
            node: slice#{{ site_name }}_management
            relationship: tosca.relationships.BelongsToOne
{% endif %}

# Slice to own management networks
    slice#{{ site_name }}_management:
      description: This slice exists solely to own the management network(s)
      type: tosca.nodes.Slice
      properties:
        network: noauto
        name: {{ site_name }}_management
      requirements:
        - site:
            node: {{ site_name }}
            relationship: tosca.relationships.BelongsToOne

