Here are some CNF customization examples.

Example 1

tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Network Function description
imports:
  - vmware_etsi_nfv_sol001_vnfd_2_5_1_types.yaml
node_types:
  tosca.nodes.nfv.VMware.CNF.cu-up-1.8:
    derived_from: tosca.nodes.nfv.VMware.CNF
    interfaces:
      Vnflcm:
        type: tosca.interfaces.nfv.Vnflcm
  tosca.nodes.nfv.Vdu.Compute.Helm.cuup-helm-chart:
    derived_from: tosca.nodes.nfv.Vdu.Compute.Helm
    properties:
      configurable_properties:
        type: tosca.datatypes.nfv.VnfcConfigurableProperties.cuup-helm-chart
        required: true
data_types:
  tosca.datatypes.nfv.VnfcConfigurableProperties.cuup-helm-chart:
    derived_from: tosca.datatypes.nfv.VnfcConfigurableProperties
    properties:
      additional_vnfc_configurable_properties:
        type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.cuup-helm-chart
        description: Describes additional configuration for VNFC that can be configured
        required: true
  tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.cuup-helm-chart:
    derived_from: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties
    properties:
      values:
        required: true
        propertyName: values
        description: Overrides for chart values
        default: ''
        type: string
        format: file
      BHU:
        required: true
        propertyName: BHU
        description: ''
        default: ''
        type: string
        format: network
      F1U:
        required: true
        propertyName: F1U
        description: ''
        default: ''
        type: string
        format: network
      E1C:
        required: true
        propertyName: E1C
        description: ''
        default: ''
        type: string
        format: network
      MGMT:
        required: true
        propertyName: MGMT
        description: ''
        default: ''
        type: string
        format: network
  tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters:
    derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
    properties:
      USERNAME:
        name: USERNAME
        type: string
        description: K8s master username
        required: true
        default: capv
        format: string
      PASSWORD:
        name: PASSWORD
        type: password
        description: K8s master password
        required: true
        default: 
        format: password
      IP:
        name: IP
        type: string
        description: K8s master ip address
        required: true
        default: 
        format: string
      K8S_NAMESPACE:
        name: K8S_NAMESPACE
        type: string
        description: K8S namespace for CU-UP
        required: true
        default: 
        format: string
      NAD_FILE:
        name: NAD_FILE
        type: string
        description: NAD Config File
        required: true
        default: ''
        format: file
  tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters:
    derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
    properties:
      nsCreateResult:
        name: nsCreateResult
        type: string
        description: ''
topology_template:
  substitution_mappings:
    node_type: tosca.nodes.nfv.VMware.CNF.cu-up-1.8
  node_templates:
    cu-up-1.8:
      node_type: tosca.nodes.nfv.VMware.CNF.cu-up-1.8
      properties:
        descriptor_id: nfd_4e7599b5-9a44-4000-850c-7ec65d2f2423
        provider: Vendor01
        product_name: CU-UP
        version: '1.0'
        id: id
        software_version: '1.3.4761'
        descriptor_version: '1.8'
        flavour_id: default
        flavour_description: default
        vnfm_info:
          - gvnfmdriver
        infra_requirements:
          node_components:
            isNumaConfigNeeded: false
            kernel:
              kernel_type:
                name: linux
                version: 4.19.132-1.ph3
              kernel_modules:
                - name: dpdk
                  version: 19.11.1
              kernel_args:
                - key: default_hugepagesz
                  value: 1G
                - key: hugepagesz
                  value: 1G
                - key: hugepages
                  value: 10
                - key: transparent_hugepage
                  value: never
                - key: intel_idle.max_cstate
                  value: 1
                - key: iommu
                  value: pt
                - key: intel_iommu
                  value: 'on'
                - key: tsc
                  value: reliable
                - key: idle
                  value: pool
                - key: intel_pstate
                  value: disable
                - key: rcu_nocb_poll
                  value: 1
                - key: clocksource
                  value: tsc
                - key: pcie_aspm.policy
                  value: performance
                - key: skew_tick
                  value: 1
                - key: isolcpus
                  value: 11-17
                - key: nosoftlockup
                - key: nohz
                  value: 'on'
                - key: nohz_full
                  value: 11-17
                - key: rcu_nocbs
                  value: 11-17
              custom_packages:
                - name: pciutils
                  version: 3.6.2-1.ph3
                - name: tuned
                  version: 2.13.0-1.ph3
            network:
              devices:
                - deviceType: sriov
                  networkName: F1U
                  resourceName: ani_netdevice_cuup_f1u
                  dpdkBinding: igb_uio
                - deviceType: sriov
                  networkName: BHU
                  resourceName: ani_netdevice_cuup_bhu
                  dpdkBinding: igb_uio
                - deviceType: sriov
                  networkName: E1C
                  resourceName: ani_netdevice_cuup_e1c
                - deviceType: sriov
                  networkName: MGMT
                  resourceName: ani_netdevice_cuup_mgmt
                  count: 5
            additional_config:
              - name: tuned
                value: '[{"name":"vendor01-cu"}]'
            file_injection:
              - source: file
                content: ../Artifacts/scripts/tuned.conf
                path: /etc/tuned/cu/tuned.conf
              - source: file
                content: ../Artifacts/scripts/cpu-partitioning-variables.conf
                path: /etc/tuned/cpu-partitioning-variables.conf
          caas_components:
            - name: sriov
              type: cni
        description: Network Function description
      interfaces:
        Vnflcm:
          instantiate_start:
            implementation: ../Artifacts/workflows/CUUP_PreInstantiation_Steps.json
            description: Configure Vendor01 CU-UP
            inputs:
              type: >-
                tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters
              USERNAME: capv
              PASSWORD: 
              IP: 
              K8S_NAMESPACE: 
              NAD_FILE: ''
            outputs:
              type: >-
                tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters
              nsCreateResult: ''
    cuup-helm-chart:
      type: tosca.nodes.nfv.Vdu.Compute.Helm.cuup-helm-chart
      properties:
        name: cuup-helm-chart
        description: cu-up
        chartName: cuup-helm-chart
        chartVersion: 1.3.4760
        helmVersion: v3
        id: cuup-helm-chart
        configurable_properties:
          additional_vnfc_configurable_properties:
            type: >-
              tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.cuup-helm-chart
            values: ''
            BHU: ''
            F1U: ''
            E1C: ''
            MGMT: ''
  policies:
    - policy_scale:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: scale
          interface_type: operation
          isEnabled: true
    - policy_workflow:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: workflow
          interface_type: operation
          isEnabled: true
    - policy_reconfigure:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: reconfigure
          interface_type: operation
          isEnabled: true
    - policy_update:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: update
          interface_type: operation
          isEnabled: true
    - policy_upgrade:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: upgrade
          interface_type: operation
          isEnabled: true
    - policy_upgrade_package:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: upgrade_package
          interface_type: operation
          isEnabled: true
    - policy_instantiate_start:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: instantiate_start
          interface_type: workflow
          isEnabled: true
    - policy_instantiate_start:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: instantiate_start
          interface_type: workflow
          isEnabled: true

Example 2

tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Network Function description
imports:
  - vmware_etsi_nfv_sol001_vnfd_2_5_1_types.yaml
node_types:
  tosca.nodes.nfv.VMware.CNF.du-1.8:
    derived_from: tosca.nodes.nfv.VMware.CNF
    interfaces:
      Vnflcm:
        type: tosca.interfaces.nfv.Vnflcm
  tosca.nodes.nfv.Vdu.Compute.Helm.du-helm-chart:
    derived_from: tosca.nodes.nfv.Vdu.Compute.Helm
    properties:
      configurable_properties:
        type: tosca.datatypes.nfv.VnfcConfigurableProperties.du-helm-chart
        required: true
data_types:
  tosca.datatypes.nfv.VnfcConfigurableProperties.du-helm-chart:
    derived_from: tosca.datatypes.nfv.VnfcConfigurableProperties
    properties:
      additional_vnfc_configurable_properties:
        type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.du-helm-chart
        description: Describes additional configuration for VNFC that can be configured
        required: true
  tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.du-helm-chart:
    derived_from: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties
    properties:
      Input Yaml:
        required: true
        propertyName: Input Yaml
        description: ''
        default: ''
        type: string
        format: file
      F1U:
        required: true
        propertyName: F1U
        description: ''
        default: ''
        type: string
        format: network
      F1C:
        required: true
        propertyName: F1C
        description: ''
        default: ''
        type: string
        format: network
      MGMT:
        required: true
        propertyName: MGMT
        description: ''
        default: ''
        type: string
        format: network
      FH:
        required: true
        propertyName: FH
        description: ''
        default: ''
        type: string
        format: network
  tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters:
    derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
    properties:
      USERNAME:
        name: USERNAME
        type: string
        description: K8s master username
        required: true
        default: ''
        format: string
      PASSWORD:
        name: PASSWORD
        type: password
        description: K8s master password
        required: true
        default: ''
        format: password
      IP:
        name: IP
        type: string
        description: K8s master ip address
        required: true
        default: ''
        format: string
      NAD_FILE:
        name: NAD_FILE
        type: string
        description: The NAD Config file
        required: true
        default: ''
        format: file
      K8S_NAMESPACE:
        name: K8S_NAMESPACE
        type: string
        description: K8S namespace for DU
        required: true
        default: ''
        format: string
  tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters:
    derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters
    properties:
      nsCreateResult:
        name: nsCreateResult
        type: string
        description: ''
      copyNADResult:
        name: copyNADResult
        type: string
        description: ''
      nadCreateResult:
        name: nadCreateResult
        type: string
        description: ''
topology_template:
  substitution_mappings:
    node_type: tosca.nodes.nfv.VMware.CNF.du-1.8
  node_templates:
    du-1.8:
      node_type: tosca.nodes.nfv.VMware.CNF.du-1.8
      properties:
        descriptor_id: nfd_4e7599b5-9a44-4000-850c-7ec65d2f2422
        provider: Vendor01
        product_name: DU
        version: '1.0'
        id: id
        software_version: '1.3.4761'
        descriptor_version: '1.8'
        flavour_id: default
        flavour_description: default
        vnfm_info:
          - gvnfmdriver
        infra_requirements:
          node_components:
            isNumaConfigNeeded: true
            kernel:
              kernel_type:
                name: linux-rt
                version: 4.19.132-1.ph3
              kernel_modules:
                - name: dpdk
                  version: 19.11.1
              kernel_args:
                - key: nosoftlockup
                - key: noswap
                - key: softlockup_panic
                  value: 0
                - key: pcie_aspm.policy
                  value: performance
                - key: intel_idle.max_cstate
                  value: 1
                - key: mce
                  value: ignore_ce
                - key: fsck.mode
                  value: force
                - key: fsck.repair
                  value: yes
                - key: nowatchdog
                - key: cpuidle.off
                  value: 1
                - key: nmi_watchdog
                  value: 0
                - key: audit
                  value: 0
                - key: processor.max_cstate
                  value: 1
                - key: intel_pstate
                  value: disable
                - key: isolcpus
                  value: 8-{{tca.node.vmNumCPUs}}
                - key: skew_tick
                  value: 1
                - key: irqaffinity
                  value: 0-7
                - key: selinux
                  value: 0
                - key: enforcing
                  value: 0
                - key: nohz
                  value: 'on'
                - key: nohz_full
                  value: 8-{{tca.node.vmNumCPUs}}
                - key: rcu_nocb_poll
                  value: 1
                - key: rcu_nocbs
                  value: 8-{{tca.node.vmNumCPUs}}
                - key: idle
                  value: poll
                - key: default_hugepagesz
                  value: 1G
                - key: hugepagesz
                  value: 1G
                - key: hugepages
                  value: 17
                - key: intel_iommu
                  value: 'on'
                - key: iommu
                  value: pt
                - key: kthreads_cpu
                  value: 0-7
                - key: clock
                  value: tsc
                - key: clocksource
                  value: tsc
                - key: tsc
                  value: reliable
              custom_packages:
                - name: pciutils
                  version: 3.6.2-1.ph3
                - name: tuned
                  version: 2.13.0-3.ph3
                - name: linuxptp
                  version: 2.0-1.ph3
            additional_config:
              - name: tuned
                value: '[{"name":"vendor01-du"}]'
            file_injection:
              - source: file
                content: ../Artifacts/scripts/tuned.conf
                path: /etc/tuned/du/tuned.conf
              - source: file
                content: ../Artifacts/scripts/cpu-partitioning-variables.conf
                path: /etc/tuned/cpu-partitioning-variables.conf
              - source: file
                content: ../Artifacts/scripts/realtime-variables.conf
                path: /etc/tuned/realtime-variables.conf
            network:
              devices:
                - deviceType: sriov
                  networkName: F1U
                  resourceName: ani_netdevice_du_f1u
                  dpdkBinding: igb_uio
                - deviceType: sriov
                  networkName: F1C
                  resourceName: ani_netdevice_du_f1c
                - deviceType: sriov
                  networkName: FH
                  resourceName: ani_netdevice_du_fh
                  dpdkBinding: vfio-pci
                - deviceType: sriov
                  networkName: MGMT
                  resourceName: ani_netdevice_du_mgmt
                  count: 6
            passthrough_devices:
              - device_type: NIC
                pf_group: ptp
          caas_components:
            - name: sriov
              type: cni
      interfaces:
        Vnflcm:
          instantiate_start:
            implementation: ../Artifacts/workflows/DU-Preinstantion-WF.json
            description: Configure DU using a configmap
            inputs:
              type: >-
                tosca.datatypes.nfv.VMware.Interface.InstantiateStartInputParameters
              USERNAME: ''
              PASSWORD: ''
              IP: ''
              NAD_FILE: ''
              K8S_NAMESPACE: ''
            outputs:
              type: >-
                tosca.datatypes.nfv.VMware.Interface.InstantiateStartOutputParameters
              nsCreateResult: ''
              copyNADResult: ''
              nadCreateResult: ''
    du-helm-chart:
      type: tosca.nodes.nfv.Vdu.Compute.Helm.du-helm-chart
      properties:
        name: du-helm-chart
        description: Chart for DU
        chartName: du-helm-chart
        chartVersion: 1.3.4761
        helmVersion: v3
        id: du-helm-chart-1.0
        configurable_properties:
          additional_vnfc_configurable_properties:
            type: >-
              tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties.du-helm-chart
            Input Yaml: ''
            F1U: 'cellsite-F1U'
            F1C: 'cellsite-F1C'
            MGMT: 'cellsite-mgmt'
            FH: 'cellsite-FH'
  policies:
    - policy_scale:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: scale
          interface_type: operation
          isEnabled: true
    - policy_workflow:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: workflow
          interface_type: operation
          isEnabled: true
    - policy_reconfigure:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: reconfigure
          interface_type: operation
          isEnabled: true
    - policy_update:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: update
          interface_type: operation
          isEnabled: true
    - policy_upgrade:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: upgrade
          interface_type: operation
          isEnabled: true
    - policy_upgrade_package:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: upgrade_package
          interface_type: operation
          isEnabled: true
    - policy_instantiate_start:
        type: tosca.policies.nfv.SupportedVnfInterface
        properties:
          interface_name: instantiate_start
          interface_type: workflow
          isEnabled: true