#  Copyright 2020 Whitestack LLC
#
#  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.

vnfd:vnfd-catalog:
  vnfd:
    - id: vEPC_vnfd
      name: vEPC_vnfd # To product-name
      short-name: vEPC_vnfd # Deprecated
      description: Generated by OSM package generator
      vendor: OSM_VNFONB_TF # To do provider
      version: "1.0"
      mgmt-interface: # To mgmt-cp
        cp: spgwmme-mgmt
      ip-profiles: # To deployment flavour (DF)
        - name: s6a
          description: s6a network
          ip-profile-params:
            ip-version: ipv4
            subnet-address: 10.0.6.0/24
            dhcp-params:
              enabled: true
      vdu:
        - id: spgwmme
          name: spgwmme
          description: spgwmme
          count: 1 # To DF vdu-profile or instantiation-level
          vm-flavor:
            vcpu-count: 2
            memory-mb: 4096
            storage-gb: 10
          image: "nextepc-spgwmme-base"
          cloud-init-file: spgwmme-init
          interface:
            - name: eth0
              type: EXTERNAL
              virtual-interface:
                type: PARAVIRT
              external-connection-point-ref: spgwmme-mgmt
            - name: eth1
              type: EXTERNAL
              virtual-interface:
                type: PARAVIRT
              external-connection-point-ref: spgwmme-s1
            - name: eth2
              type: EXTERNAL
              virtual-interface:
                type: PARAVIRT
              external-connection-point-ref: spgwmme-sgi
            - name: eth3
              type: INTERNAL
              virtual-interface:
                type: PARAVIRT
              internal-connection-point-ref: spgwmme-s6a
          internal-connection-point:
            - id: spgwmme-s6a
              name: spgwmme-s6a
              type: VPORT
          monitoring-param: # To be removed (feature 8157)
            - id: "spgw_cpu_util"
              nfvi-metric: "cpu_utilization"
            - id: "spgw_memory_util"
              nfvi-metric: "average_memory_utilization"
        - id: hss
          name: hss
          description: hss
          count: 1
          vm-flavor:
            vcpu-count: 1
            memory-mb: 2048
            storage-gb: 10
          image: "nextepc-hss-base"
          cloud-init-file: hss-init
          interface:
            - name: eth0
              type: EXTERNAL
              virtual-interface:
                type: PARAVIRT
              mgmt-interface: true
              external-connection-point-ref: hss-mgmt
            - name: eth1
              type: INTERNAL
              virtual-interface:
                type: PARAVIRT
              internal-connection-point-ref: hss-s6a
          internal-connection-point:
            - id: hss-s6a
              name: hss-s6a
              type: VPORT
          vdu-configuration:
            initial-config-primitive:
              - seq: "1"
                name: config
                parameter:
                  - name: ssh-hostname
                    value: <rw_mgmt_ip>
                  - name: ssh-username
                    value: ubuntu
                  - name: ssh-password
                    value: <password>
              - seq: "2"
                name: configure-hss
                parameter:
                  - name: spgw-ip
                    data-type: STRING
                    value: <spgw_ip>
                  - name: hss-ip
                    data-type: STRING
                    value: <hss_ip>
              - seq: "3"
                name: restart-hss
            juju:
              charm: hsscharm
      internal-vld:
        - id: s6a
          ip-profile-ref: s6a
          internal-connection-point:
            - id-ref: spgwmme-s6a
            - id-ref: hss-s6a
          name: s6a
      connection-point:
        - name: spgwmme-mgmt
        - name: spgwmme-s1
        - name: spgwmme-sgi
        - name: hss-mgmt
      vnf-configuration:
        initial-config-primitive:
          - seq: "1"
            name: config
            parameter:
              - name: ssh-hostname
                value: <rw_mgmt_ip>
              - name: ssh-username
                value: ubuntu
              - name: ssh-password
                value: <password>
          - seq: "2"
            name: configure-spgw
            parameter:
              - name: spgw-ip
                data-type: STRING
                value: <spgw_ip>
              - name: hss-ip
                data-type: STRING
                value: <hss_ip>
          - seq: "3"
            name: restart-spgw
        config-primitive:
          - name: add-route
            parameter:
              - name: external-prefix
                data-type: STRING
                default-value: "8.8.8.8/32"
              - name: next-hop
                data-type: STRING
                default-value: "192.168.2.1"
        juju:
          charm: spgwcharm
      monitoring-param:
        - id: "spgw_cpu_util"
          name: "spgw_cpu_util"
          aggregation-type: AVERAGE
          vdu-monitoring-param:
            vdu-ref: "spgwmme"
            vdu-monitoring-param-ref: "spgw_cpu_util"
        - id: "spgw_memory_util"
          name: "spgw_memory_util"
          aggregation-type: AVERAGE
          vdu-monitoring-param:
            vdu-ref: "spgwmme"
            vdu-monitoring-param-ref: "spgw_memory_util"
