
{#
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/addresspool.yaml
  - custom_types/addressmanagerservice.yaml
  - custom_types/addressmanagerserviceinstance.yaml
  - custom_types/network.yaml
  - custom_types/networktemplate.yaml
  - custom_types/serviceinstance.yaml
  - custom_types/serviceinstancelink.yaml
  - custom_types/site.yaml
  - custom_types/slice.yaml

description: public network config, generated by platform-install

topology_template:
  node_templates:

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



# Address Manager service, fully created in cord-service.yaml
    service#addressmanager:
      type: tosca.nodes.AddressManagerService
      properties:
        name: addressmanager
        must-exist: true

# public network

    public_template:
      type: tosca.nodes.NetworkTemplate
      properties:
          name: public_template
          visibility: public
          translation: none
          vtn_kind: PUBLIC

    public:
      type: tosca.nodes.Network
      properties:
          name: public
          permit_all_slices: true
          subnet: 10.8.1.0/24 # NOTE same as AddressPool#addresses_public
          # ip_version: 4
      requirements:
          - template:
              node: public_template
              relationship: tosca.relationships.BelongsToOne
          - owner:
              node: {{ site_name }}_public
              relationship: tosca.relationships.BelongsToOne

    # Created in cord-services.yaml.j2
    addresses_public:
      type: tosca.nodes.AddressPool
      properties:
        name: addresses_public
        must-exist: true

    AddressManagerServiceInstancePublicNetwork:
      type: tosca.nodes.AddressManagerServiceInstance
      requirements:
          - owner:
              node: service#addressmanager
              relationship: tosca.relationships.BelongsToOne
          - address_pool:
              node: addresses_public
              relationship: tosca.relationships.BelongsToOne
      properties:
          name: AM_public_net

    public_to_address_manager:
        type: tosca.nodes.ServiceInstanceLink
        requirements:
          - provider_service_instance:
              node: AddressManagerServiceInstancePublicNetwork
              relationship: tosca.relationships.BelongsToOne
          - subscriber_network:
              node: public
              relationship: tosca.relationships.BelongsToOne

    {{ site_name }}_public:
      description: This slice exists solely to own the public network
      type: tosca.nodes.Slice
      properties:
          network: noauto
          name: {{ site_name }}_public
      requirements:
          - site:
              node: {{ site_name }}
              relationship: tosca.relationships.BelongsToOne

