DZS Cloud Orchestration Installation

DZS Cloud Orchestration Launchpad is deployed in a Kubernetes based Cluster k8s or Kubernetes k3s in a VM platform.

Install Launchpad in a Kubernetes Based Cluster k8s

Prepare for Installing Launchpad in a Kubernetes Based Cluster k8s

DZS Cloud Orchestration requires the following prerequisites to install Launchpad in a Kubernetes based Cluster k8s.

  • Helm Chart: Build a helm chart for DZS Cloud Orchestration Launchpad. Enter the CLI from a remote machine using SSH or on the platform itself. See the Helm Chart section below for steps to install the chart. For details on how to create a chart see The Chart Template Developer’s Guide.

  • Values File: The values file is a template that an operator must customize. The values can be extracted from the helm chart (values.yaml). For details on how to create and edit a values file, see the helm Values Files documentation.

    Note: The values file template is embedded directly into the DZS code.

  • Docker Access: For docker access, contact DZS Services and Support at https://dzsi.com/support/ to obtain access to a docker registry with docker images.

  • Working Cluster and Kubeconfig File: A working cluster and kubeconfig file for the target Kubernetes cluster. For additional details, contact your Cluster Admin.

  • Cluster Details: An operator must understand all possible configurations of the cluster prior to installing DZS Cloud Orchestration. See a couple questions below that an operator must ask prior to installation.

    • Does your cluster use ceph for storage? For ceph, you can make this change in the values file: storageClassName: ocs-storagecluster-cephfs

    • Does it have an HA proxy, NodePort and/or MetaLB?

Helm Chart

It is necessary to deploy a help chart prior to installing DZS Cloud Orchestration.

Note: An operator must have a Kubernetes Cluster Admin or Operator role with the proper permissions to install helm charts. For additional details, contact your Cluster Admin.

dzsi-shell is a command line user interface used to set up environmental variables, such as PATH , necessary to run and develop DZS Cloud Orchestration software. The environmental variables are inferred from the code base and are written to:

${DZSI_ROOT}/.build/.dzsi-env

You do not interact with DZS Cloud Orchestration from dzsi-shell. You interact with DZS Cloud Orchestration through the DZS UI or the DZS CLI (RW.CLI).

  1. To enter the DZS Cloud Orchestration CLI (rwcli) in a new terminal, run the following series of commands:

    $ cd /usr/dzsi
    $ sudo -H ./dzsi-shell -r -i /usr/dzsi -a /usr/dzsi/.artifacts
    $ rwcli
    

    The NETCONF username is admin. Contact DZS Services and Support at https://dzsi.com/support/ to obtain the proper password.

    Note: You can safely ignore any errors output to the terminal, as long as you see the dzsi# prompt.

  2. Run the following commands to install the helm chart:

    $ helm3 install <release-name> <path-to-helm-package> <custom-values>
    eg> helm install my-lp ./launchpad-8.2.0.tgz --set global.namespace.name=myns-lp --set launchpad.service.type=LoadBalancer
    eg> helm install my-lp https://artifactory.riftio.com/helm-local/launchpad/launchpad-8.2.0.tgz -f custom_values.yaml

This command will install the Launchpad as a Pod in the Kubernetes cluster. Persistent volume is required for DZSI_VAR_ROOT and by default it is mounted using Network Functions (NFs). The NFs server and mount path is specified in the <package>/values.yaml file. See the DZS Cloud Orchestration Installation table below.

Note: Values can be customized using ‘-set’ override or a custom values.yaml file (-f option) when executing the chart install.

Prior to installing the helm chart, an operator can test the chart to check for errors in the package using the following command:

$ helm3 install --dry-run <release-name> <path-to-helm-package>

Cluster Details

The recommended configuration for deploying DZS Cloud OrchestrationLaunchpad in a Kubernetes Based Cluster k8 is:

  • 16 VCPUs

  • 32 GB RAM

  • 150 GB Disk

These resources need to be on only 1 or 2 nodes. If there are 2 nodes, then the requirements are:

Node 1

  • 12 VCPUs

  • 24 GB RAM

  • 100 GB Disk

Node 2

  • 4 VCPUs

  • 8 GB RAM

  • 50 GB Disk

Install Launchpad in a Kubernetes Based Cluster k8s

  1. Customize the values file as required for a specific installation. The details are embed as comments in the sample values file inside the helm chart. The values file template is constantly changing but there are some values that must be customized since they are required to install DZS Cloud Orchestration. The mandatory values are listed in the table below.

    Values Required to Install Launchpad in a Kubernetes Based Cluster k8s

    Value Setting

    launchpad.service.type

    This value sets the Kubernetes service type for the Launchpad.

    NodePort: When installed in NodePort mode, external facing RW.UI/RW.REST services are assigned a port >30000. These ports should be used for accessing RW.UI/RW.REST from outside the Kubernetes cluster. See NodePort.

    LoadBalancer: When installed in LoadBalancer mode, the external IP used for access will point to an external LoadBalancer IP. The usual ports can be used for this option. See LoadBalancer.

    Default Value: NodePort

    externalAddress

    This is a hostname or IP address of Launchpad that is externally accessible. In a Kubernetes cluster, any node in a cluster can be set to this value. Once this value is set, you must use the same address to access RW.UI. RW.REST. Other services continue to be accessed using other node names.

    Note: If you install Launchpad in LoadBalancer mode, then this value is not required.

    global.namespace.name

    This is the Namespace where the Launchpad is installed. To share multiple Launchpad installations in the same Kubernetes cluster, change the namespace. This will also require a different nfs mount.

    Default Namespace: dzsi-lp

    launchpad.image.repository

    The docker image for Launchpad. The version is specified in the Chart.yaml:appVersion.

    Contact DZS Services and Support at https://dzsi.com/support/ for the docker image.

    storage.nfs.mountPath

    This is the path to mount the NFs. The NFs server is specified using the storage.nfs.server parameter.

    To disable nfs and use the Kubernetes cluster's default storage class, set storage.nfs to null

    To run multiple Launchpads on the same Kubernetes cluster, specify a mount path not used by other Launchpad services.

  2. Run the following command to find and fix any error prior to installing Launchpad.

    helm install LP launchpad.tgz -f values.yaml --dry-run'''
  3. Next, run the below command to install Launchpad.

    helm install LP launchpad.tgz -f values.yaml '''
  4. Verify access to Launchpad. See NodePort and LoadBalancer for the specific commands to check your access.

During this installation process, the DZS Cloud Orchestration UI and other Launchpad components are installed during the Launchpad Helm chart install.

NodePort

By default, Launchpad is installed as a service using the Kubernetes NodePort option. If you choose this option, then Launchpad services can only be accessed externally using the NodePort ports (ports >30000 assigned by k8s) and not the default ports. You can pre-select port numbers in the values file. If you do not configure port numbers in the values file, then DZS Cloud Orchestration will automatically assign you port numbers. Port numbers are necessary so that Launchpad can create correctly formatted HTTP redirects.

To get the service ports execute the following command.

$ kubectl get service -n dzsi-lp
NAME           TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                                        AGE
lp-launchpad   NodePort   10.233.28.79   <none>        8009:31317/TCP,8008:31943/TCP,8443:32515/TCP   3m1s

In this mode, the externalAddress in the values.yaml is mandatory. This externalAddress can be any one of the IPs/FQDN of the Kubernetes cluster nodes in which the Launchpad is deployed. In the above installation example, the UI can be accessed using the port 32515, REST with port 31943 and OAuth2 service using port 31317. The DZS Cloud Orchestration UI can be accessed using the url https://<externalAddress-in-values.yaml>:32515.

LoadBalancer

When Launchpad is installed in LoadBalancer mode, the Kubernetes controllers allocate a Load Balance with external access that routes messages only to the Launchpad service. Launchpad service can be accessed using the IP address allocated for the Load Balancer. If there is a LoadBalancer acting as an ingress controller, then you can configure port numbers in the values file. In this scenario, the externalAddress points to the LoadBalancer. Port numbers are necessary so that Launchpad can create correctly formatted HTTP redirects.

This Load Balancer external IP can be obtained by using the below command. The external IP column specifics the address assigned to the Load Balancer. Launched can be accessed using the external-ip address or an FQDN pointing to it.

$ kubectl get service lp-a-launchpad -n site-a
NAME             TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                                        AGE
lp-a-launchpad   LoadBalancer   10.233.16.37   10.67.1.220   8009:32660/TCP,8008:32161/TCP,8443:32240/TCP   17h

In this mode the externalAddress in the values.yaml file is optional. If this address is not specified, then the helm chart automatically takes the EXTERNAL-IP for the Launchpad service. In the above installation example, use URL https://10.67.1.220:8443 to access the Launchpad UI and use URL https://10.67.1.220:8008 to use REST.

Uninstall Launchpad in a Kubernetes Based Cluster k8s

To uninstall Launchpad in a Kubernetes Based Cluster k8s, run the following command.

helm uninstall my-LP 

Install Launchpad in a Kubernetes k3s in a VM platform

An operator must run the required commands to install DZS Cloud Orchestration inside a VM platform. DZS provides a QCOW2 image that contains a fully-populated version of the DZS Cloud Orchestration Launchpad. DZS Cloud Orchestration is ready to use as soon as you instantiate the image on virsh or OpenStack Horizon.

It is required to have an SSK Key and the DZSI_EXTERNAL_ADDRESS in order to install Launchpad using this method. The DZSI_EXTERNAL_ADDRESS is the hostname or the IP address of Launchpad that is externally accessible to the operator. Use the following command to update the DZSI_EXTERNAL_ADDRESS.

/usr/dzsi/var/dzsi/env.d/DZSI_EXTERNAL_ADDRESS

Return to top

Next also

DZS Cloud Orchestration Upgrade