.. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 Installing PNDA Platform through Helm Chart =========================================== PNDA is integrated into ONAP as a component system of DCAE. It is possible to deploy PNDA as part of an ONAP OOM deployment on Openstack infrastructure. This is achieved by using a pnda-bootstrap container in kubernetes to deploy Openstack VMs and then install a PNDA cluster onto those VMs. Note: The docker images used for PNDA deployments are maintained in registry outside of ONAP currently under pndareg.ctao6.net. This will be moved to ONAP nexus3 repo part of future release work. * onap/org.onap.dcaegen2.deployments.pnda-bootstrap-container:5.0.0 * onap/org.onap.dcaegen2.deployments.pnda-mirror-container:5.0.0 Requirements ------------ PNDA deployment within ONAP requires the following: * Openstack based infrastructure. Follow the `PNDA guide `_ for more information. * OOM / Helm template based installation of ONAP on Kubernetes. * Kubernetes and PNDA need to share the same Openstack network subnet. The dcae-pnda-bootstrap Helm chart currently deploys a PNDA cluster with the following resource requirements: +--------------------+--------------------+--------------------+--------------------+ |Node | CPU | RAM GB | Disk GB | +====================+====================+====================+====================+ |Gateway | 2 | 4 | 20 | +--------------------+--------------------+--------------------+--------------------+ |Edge | 8 | 32 | 50 | +--------------------+--------------------+--------------------+--------------------+ |Hadoop Manager | 4 | 16 | 50 | +--------------------+--------------------+--------------------+--------------------+ |Hadoop Data x 2 | 4 | 8 | 20 + 45 | +--------------------+--------------------+--------------------+--------------------+ |Kafka | 2 | 8 | 50 | +--------------------+--------------------+--------------------+--------------------+ There are several parameters that need to be defined with values from your environment for a successful PNDA deployment within ONAP. These parameters can be grouped in separate files that are passed as parameters to helm install. With the following files, the command to install ONAP with PNDA would then look like this: :: helm install -f ~/pnda.yaml -f ~/pnda-openstack.yaml -f ~/pnda-pem.yaml local/onap -n dev --namespace onap ``pnda.yaml`` ------------- This file contains settings to enable PNDA install and the evironment settings required by PNDA. :: pnda: dcae-pnda-bootstrap: enabled: true pnda: osUser: {guest-os-username} # e.g. centos nameserver: nn.nn.nn.nn # IP address of a reachable nameserver ntp: nn.nn.nn.nn # IP address of a reachable NTP server apps: fsType: local networkCidr: 192.168.0.0/24 outboundCidr: 0.0.0.0/0 Description ~~~~~~~~~~~ +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.enabled |boolean |Deploy PNDA or not. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.osUser |string |Login used during PNDA installation process to connect | | | |to newly created Openstack PNDA instances. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.nameserver |string |IP address of the nameserver that will be used by all | | | |Openstack PNDA instances. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.ntp |string |Hostname or IP address of a NTP server. This NTP server | | | |MUST be reachable from the Openstack PNDA instances. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.apps.fsType|string |Type of storage used to store PNDA application packages | | | |(s3, sshfs, local, swift). Set it to local. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.networkCidr|string |CIDR specifying the address range for the network | | | |containing all PNDA instances. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.dataNodes |number |Number of data nodes to deploy. Defaults to 2. | +-----------------------------------------+----------+--------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda.kafkaNodes |number |Number of kafka nodes to deploy. Defaults to 1. | +-----------------------------------------+----------+--------------------------------------------------------+ ``pnda-openstack.yaml`` ----------------------- This file contains the Openstack connection settings and Openstack entity identifiers. :: pnda: dcae-pnda-bootstrap: openstack: keystoneUser: {openstack-username} keystonePassword: {openstack-password} keystoneTenant: {openstack-tenant-name} keystoneAuthUrl: {openstack-auth-url} # e.g. http://openstack-host:5000/v2.0/ keystoneRegion: {openstack-region-name} useExistingNetwork: true existingNetworkId: {kubernetes-cluster-network} existingSubnetId: {kubernetes-cluster-subnet} imageId: {pnda-vm-image-id} # Openstack imageId to use for PNDA VMs publicNetworkId: {public-network-id} # Openstack networkId of public facing network publicSubnetCidr: nn.nn.nn.nn/nn # CIDR address of the public subnet e.g. 10.40.10.0/24 Description ~~~~~~~~~~~ +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.keystoneUser |string |Openstack user. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.keystonePassword |string |Openstack password. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.keystoneTenant |string |Openstack tenant. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.keystoneAuthUrl |string |Openstack authentication url. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.keystoneRegion |string |Openstack region. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.useExistingNetwork|boolean |Do you want to create a new Openstack network | | | |or do you want to use an already existing one? | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.existingNetworkId |string |If you want to use an already existing | | | |Openstack network, specify its UUID. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.existingSubnetId |string |If you want to use an already existing | | | |Openstack network, specify the UUID of the | | | |Openstack subnet to use. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.imageId |string |Base image to use for the created Openstack | | | |PNDA instances. | +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.publicNetworkId |string |UUID of the public network in openstack to use.| +-----------------------------------------------------+----------+-----------------------------------------------+ |pnda.dcae-pnda-bootstrap.openstack.publicSubnetCidr |string |CIDR specifying the address range for the | | | |public subnet. | +-----------------------------------------------------+----------+-----------------------------------------------+ ``pnda-pem.yaml`` ----------------- This file contains the private secret and Openstack keypair name to use for the guest VMs in Openstack. :: pnda: dcae-pnda-bootstrap: pnda_keypair_name: {keypair-name} # Name of the keypair you have created in Openstack, e.g. pnda-key pnda_secret: | -----BEGIN DSA PRIVATE KEY----- MIIBugIBAAKBgQCLLCmDJdxCxOOmaSGoH0WUyoiGUJiE0JnzEEhXd4SZWmoxo7yn 9d3iA9z2OiOnbQ4s5tAOWknpFEnIwtFb+L2x3Fzv7yEdHBk0tgC8c91sIxb72SVp RgJDaseL2C5RRdWqDiKlXnA1iY7H5z/k/bZD61/4eGdAojVxroQX2H6uLQIVAIrG WVGBudBQmfwKzyP5eO1nevNFAoGAALSGjzP0/yVnEKZ8JO8Vw/eC1YDmTG1IwBdN Rm8fXqyUjd03ijpmOoPISPM6Jt0TrJTvGNVfqSI1mKVznJ+5B7y5M9qvjzHQW5hL GkXHL57mN2QkaJE/m4ilKr/p5RzTBk6c/zhvxg/8DEne6klQ3NQhapzY4cL9aLK6 hrR4T94CgYAhGFZI5buQUk8MtG9nac9hEQuYw+lrdjy+y1F8XIjq8+ZLAdCY5gw/ ph+4di/R8MyesqG5AtqUqXQY3tibya3YrqyNZ5mTz6kMN1lT26QHwYMBF1IymMWV lq5wzjpctVovYchCLagrh7KepetNigni0Vrjc0TLPbvXQkoLG5JifgIURmDpblYA HSNN6un6nlCoGnm07SA= -----END DSA PRIVATE KEY----- Description ~~~~~~~~~~~ +------------------------------------------+----------+-------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda_keypair_name|string |Name of the keypair to use to spawn the Openstack PNDA | | | |instances.Note that the private key above is a | | | |generated sample that is unusable. | +------------------------------------------+----------+-------------------------------------------------------+ |pnda.dcae-pnda-bootstrap.pnda_secret |string |Secret key of the pnda_keypair_name keypair. | +------------------------------------------+----------+-------------------------------------------------------+