2 NF ATS Installation Procedure

In this chapter, you will learn to install ATS for different network function platforms like,
  • NRF
  • NSSF
  • Policy
  • SCP
  • SLF

NRF ATS Installation Procedure

The NRF ATS installation procedure covers three steps:
  1. Locating and downloading ATS and Simulator Images
  2. Preparing to deploy ATS and Stub Pod in Kubernetes Cluster
  3. Deploying ATS and Stub Pod in Kubernetes Cluster

Locating and Downloading ATS Images

The steps to locate and download ATS Images are as follows:

  1. Login to My Oracle Support using the appropriate credentials.
  2. Select Patches & Updates tab.
  3. In the Patch Search console, select Product or Family (Advanced) tab.
  4. Enter Oracle Communications Cloud Native Core - 5G in Product field and select the product from the Product drop-down.
  5. Select Oracle Communications Cloud Native Core Network Repository Function <release_number> in Release field.
  6. Click Search. The Patch Advanced Search Results list appears.
  7. Select the required ATS patch from the list. The Patch Details window appears.
  8. Click Download. The File Download window appears.
  9. Click the <p********_<release_number>_Tekelec>.zip file.
  10. Extract the ATS release package zip file to download the ATS images to the system where network function must be installed.
  11. The ocats-nrf directory has following files:
    ocats-nrf-tools-pkg-1.7.2.0.0.tgz
    ocats-nrf-tools-pkg-1.7.2.0.0-README.txt
    ocats-nrf-custom-configtemplates-1.7.2.0.0.zip
    ocats-nrf-custom-configtemplates-1.7.2.0.0-README.txt
  12. The ocats-nrf-tools-pkg-1.7.2.0.0-README.txt file contains all the information required for the package.
  13. The ocats-nrf-tools-pkg-1.7.2.0.0.tgz file has following images and charts packaged as tar files:
    ocats-nrf-tools-pkg-1.7.2.0.0.tgz
    
          |
    
          |_ _ _ocats-nrf-pkg-1.7.2.0.0.tgz
    
          |        |_ _ _ _ _ _ ocats-nrf-1.7.2.tgz (Helm Charts)
    
          |        |_ _ _ _ _ _ ocats-nrf-image-1.7.2.tar (Docker Images)
    
          |        |_ _ _ _ _ _ OCATS-NRF-Readme.txt
    
          |
    
          |_ _ _ocstub-python-pkg-1.7.2.0.0.tgz
    
                   |_ _ _ _ _ _ ocstub-1.7.2.tgz (Helm Charts)
    
                   |_ _ _ _ _ _ ocstub-python-image-1.7.2.tar (Docker Images)
    
                   |_ _ _ _ _ _ OCSTUB-PYTHON-Readme.txt
    In addition to the above images and charts, the ocats-nrf-custom-configtemplates-1.7.2.0.0.zip file is also there in the same location. The ocats-nrf-custom-configtemplates-1.7.2.0.0-README.txt file contains the information about the content of this zip file. The content of the zip file is as follows:
    ocats-nrf-custom-configtemplates-1.7.2.0.0.zip
    
          |
    
          |_ _ _ocats-nrf-custom-values.yaml (Custom values file for installation)
    
          |
    
          |_ _ _ocats-nrf-custom-serviceaccount.yaml (Template to create custom service account)
    
          |
    
          |_ _ _ocstub-python-custom-values.yaml (Custom values file for stub installation
  14. The user can copy the tar file from here to the OCCNE/OCI/Kubernetes cluster where they want to deploy ATS.

Preparing to Deploy ATS and Stub Pod in Kubernetes Cluster

The steps to deploy ATS and Stub Pod in Kubernetes Cluster are as follows:

  1. Execute the following command to extract tar file content.

    tar -xvf ocats-nrf-tools-pkg-1.7.2.0.0.tgz

    The output of this command is:
    ocats-nrf-pkg-1.7.2.0.0.tgz
    ocstub-python-pkg-1.7.2.0.0.tgz
  2. Execute the given command to extract final helm charts and docker images of ATS.

    tar -xvf ocats-nrf-pkg-1.7.2.0.0.tgz

    The output of this command is:
    ocats-nrf-image-1.7.2.tar
    ocats-nrf-1.7.2.tgz
    OCATS-NRF-Readme.txt

    Note:

    The OCATS-NRF-Readme.txt file contains all the information required for the package.
  3. Execute the following command to untar the ocstub package .

    tar -xvf ocstub-python-pkg-1.7.2.0.0.tgz

    The output of this command is:
    ocstub-python-image-1.7.2.tar
    ocstub-python-1.7.2.tgz
    OCSTUB-PYTHON-Readme.txt
  4. Execute the following command to extract the content of the custom values file:

    unzip ocats-nrf-custom-configtemplates-1.7.2.0.0.zip

    The output of this command is:
    ocats-nrf-custom-values.yaml (Custom yaml file for deployment of OCATS-NRF)
    ocats-nrf-custom-serviceaccount.yaml (Custom yaml file for service account creation to help customer if required)
    ocstub-python-custom-values.yaml (Custom yaml file for deployment of OCSTUB-PYTHON)
  5. In your cluster, load the ATS docker image, 'ocats-nrf-image-1.7.2.tar' and Stub docker image, 'ocstub-python-image-1.7.2.tar' and push it to your registry.
    docker load -i ocats-nrf-image-1.7.2.tar
    docker push <registry>/ocats-nrf:1.7.2
    docker load -i ocstub-python-image-1.7.2.tar
    docker push <registry>/ocstub-python:1.7.2
    
  6. Update the image name and tag in the ocats-nrf-custom-values.yaml and ocstub-python-custom-values.yaml file as required.

    For this, you need to open the ocats-nrf-custom-values.yaml and ocstub-python-custom-values.yaml file and update the image.repository and image.tag

  7. ATS supports static port. By default, this feature is not available. To enable this feature:
    • In the ocats-nrf-custom-values.yaml file under service section, set the staticNodePortEnabled parameter value to 'true' and staticNodePort parameter value with valid nodePort.
    • A sample screen is given below:

      Figure 2-1 ocats-nrf-custom-values.yaml - service section

      img/nrf-service-section.png

Enabling Service Mesh for ATS

Note:

This procedure is applicable only if you want to enable service mesh.

To enable service mesh for ATS, perform the following steps:

  1. If the service mesh is not enabled at the global level for the namespace, execute the following command to enable it before deploying ATS.
    kubectl label --overwrite namespace <namespace_name> istio-injection=enabled

    Example

    kubectl label --overwrite namespace ocnrf istio-injection=enabled
  2. Under the service section of the ocats-nrf-custom-values.yaml file , set the serviceMeshCheck parameter true. By default, this parameter is set to false. A snippet of service section in the yaml file is given below:

    Figure 2-2 Enabling Service Mesh

    img/nrf-service-mesh.png

Deploying ATS and Stub Pod in Kubernetes Cluster

Note:

It is important to ensure that all the three components; ATS, Stub and NRF are in the same namespace.

You need two Stubs for the NRF tests to be executed. The service name for the stubs should be notify-stub-service and notify-stub-service02.

ATS and Stub supports Helm2 and Helm3 for deployment.

If the namespace does not exists, execute the following command to create a namespace:

kubectl create namespace ocnrf

Using Helm 2 for ATS:
helm install ocats-nrf-1.7.2.tgz --name <release_name> --namespace 
<namespace_name> -f <values-yaml-file>

For example -
helm install ocats-nrf-1.7.2.tgz --name ocats --namespace ocnrf -f 
ocats-nrf-custom-values.yaml

Using Helm 2 for Stubs:

helm install ocstub-python-1.7.2.tgz --set service.name=<stub-service-name>
 --name <release_name> --namespace <namespace_name> -f <values-yaml-file>
 
For example -
helm install ocstub-python-1.7.2.tgz --set service.name=notify-stub-service --name 
ocstub --namespace ocnrf -f ocstub-python-custom-values.yaml
helm install ocstub-python-1.7.2.tgz --set service.name=notify-stub-service02 --name 
ocstub1 --namespace ocnrf -f ocstub-python-custom-values.yaml

Using Helm 3 for ATS:

helm3 install -name <release_name> ocats-nrf-1.7.2.tgz --namespace <namespace_name> -f <values-yaml-file>

Example:helm3 install -name ocats ocats-nrf-1.7.2.tgz --namespace ocnrf -f ocats-nrf-custom-values.yaml

Using Helm 3 for Stubs:

helm3 install -name <release_name> ocstub-python-1.7.2.tgz --set service.name=<stub-service-name> --namespace <namespace_name> -f <values-yaml-file>

Example: helm3 install -name ocstub ocstub-python-1.7.2.tgz --set service.name=notify-stub-service --namespace ocnrf -f ocstub-python-custom-values.yaml

helm3 install -name ocstub1 ocstub-python-1.7.2.tgz --set service.name=notify-stub-service02 --namespace ocnrf -f ocstub-python-custom-values.yaml

Execute the following command to verify ATS deployment.

helm status <release_name>

Once ATS and Stub are deployed, execute the following command to check the pod and service deployment.
Checking Pod Deployment:
kubectl get pod -n ocnrf
Checking Service Deployment:
kubectl get service -n ocnrf

Figure 2-3 Checking Pod and Service Deployment without Service Mesh

img/nrf-ats-and-stub-deployed.png

If ATS is deployed with side car of service mesh, you need to ensure that both ATS and Stub pods have 2 containers in ready state and shows "2/2". A sample screen is shown below:

Figure 2-4 ATS and Stub Deployed with Service Mesh

img/nrf-ats-and-stub-deployed-service-mesh.png

NSSF ATS Installation Procedure

The NSSF ATS installation procedure covers two steps:
  1. Locating and downloading ATS and Simulator Images
  2. Deploying ATS and Stub Pod in Kubernetes Cluster as per NSSF

Locating and Downloading ATS Images

  1. Login to My Oracle Support using the appropriate credentials.
  2. Select Patches & Updates tab.
  3. In the Patch Search console, select Product or Family (Advanced) tab.
  4. Enter Oracle Communications Cloud Native Core - 5G in Product field and select the product from the Product drop-down.
  5. Select Oracle Communications Cloud Native Core Network Slice Selection Function <release_number> in Release field.
  6. Click Search. The Patch Advanced Search Results list appears.
  7. Select the required ATS patch from the list. The Patch Details window appears.
  8. Click Download. The File Download window appears.
  9. Click the <p********_<release_number>_Tekelec>.zip file.
  10. Extract the ATS release package zip file to download the ATS images to the system where network function must be installed.
  11. The ocats-nssf directory has the following files:
    • ocats-nssf-tools-pkg-1.4.0.0.tgz
    • ocats-nssf-tools-pkg-1.4.0.0-README.txt

      Note:

      The ocats-nssf-tools-pkg-1.4.0.0-README.txt file contains all the information required for the package.
  12. The ocats-nssf-tools-pkg-1.4.0.0-README.txt file contains all the information required for the package.
  13. The ocats-nssf-tools-pkg-1.4.0.0.tgz file has the following images and charts packaged as tar files:
    ocats-nssf-tools-pkg-1.4.0.0.tgz
    |
    |_ _ _ocats-nssf-pkg-1.4.0.0.tgz
    | |_ _ _ _ _ _ ocats-nssf-1.4.tgz (Helm Charts)
    | |_ _ _ _ _ _ ocats-nssf-image-1.4.tar (Docker Images)
    | |_ _ _ _ _ _ Readme.txt
  14. The user can copy the tar file from here and copy in their OCCNE/OCI/Kubernetes cluster where they want to deploy ATS.

Deploying ATS in Kubernetes Cluster

The steps to deploy ATS in Kubernetes Cluster are as follows:

  1. Execute the following command to extract tar file content:

    tar -xvf ocats-nssf-tools-pkg-1.4.0.0.tgz

    The output of this command is:

    ocats-nssf-pkg-1.4.0.0.tgz

  2. Execute the following command to extract final helm charts and docker images of ATS:

    tar -xvf ocats-nssf-pkg-1.4.0.0.tgz

    The output of this command is:

    ocats-nssf-image-1.4.tar ocats-nssf-1.4.tgz

    Readme.txt

  3. In your cluster, load the ATS image, 'ocats-nssf-image-<version>.tar' and push to your registry.

    docker load -i ocats-nssf-image-<version>.tar

    1. Execute the following command to grep the image.

      docker images | grep ocats-nssf

    2. Copy the Image ID from the output of the grep command and change the tag to your registry.

      Example:

      docker tag <Image_ID> <your-registry-name/ocats-nssf:<tag>>

      docker push <your-registry-name/ocats-nssf:<tag>>

  4. Untar the helm charts, ocats-nssf-<version>.tgz

    tar -xvf ocats-nssf-<version>.tgz

  5. Update the image name and tag in the ocats-nssf/values.yaml file as required. For this, you need to open the values.yaml file and update the image.repository and image.tag.
  6. ATS supports static port. By default, this feature is not available. To enable this feature:
    • In the ocats-nssf/values.yaml file under service section, set the value of staticNodePortEnabled parameter as true and provide a valid nodePort value for staticNodePort.
    • A sample screen is given below:

      Figure 2-5 ocats-nssf/values.yaml - service section

      img/nrf-service-section.png
  7. Deploy ATS using the updated helm charts after performing the previous step 5.

    helm install ocats-nssf --name <release_name> --namespace <namespace_name> -f ocats-nssf/values.yaml

    Example: helm install ocats-nssf --name ocats --namespace ocnssf -f ocats-nssf/values.yaml

    If this command returns an error like, <Error: validation failed: unable to recognize "": no matches for kind "Deployment" in version "apps/v1beta2"> then, open the template/deployment.yml file and change the apiVersoin to apiVersion: apps/v1.

  8. Execute the following command to verify the ATS deployment:

    helm status <release_name>

    A sample screen showing ATS Helm release is given below:

    Figure 2-6 ATS Helm Release

    img/nssf-ats-helm-release.png

Policy ATS Installation Procedure

The Policy ATS installation procedure covers two steps:

  1. Locating and downloading the ATS images.
  2. Deploying ATS images.
This includes installation of stubs (nf1stub, nf2stub and nf3stub) and ATS in Policy's namespace. The release of ATS supports in-cluster deployment of Policy and ATS with both TLS (server side) enabled and disabled mode.

Note:

Restart the Nrf-client pod of Policy for UDR and CHF discovery as part of each test case.

Locating and Downloading ATS Images

To locate and download the ATS Images:

  1. Login to My Oracle Support using the appropriate credentials.
  2. Select Patches & Updates tab.
  3. In the Patch Search console, select Product or Family (Advanced) tab.
  4. Enter Oracle Communications Cloud Native Core - 5G in Product field and select the product from the Product drop-down.
  5. Select Oracle Communications Cloud Native Core Policy Control Function <release_number> in Release field.
  6. Click Search. The Patch Advanced Search Results list appears.
  7. Select the required ATS patch from the list. The Patch Details window appears.
  8. Click Download. The File Download window appears.
  9. Click the <p********_<release_number>_Tekelec>.zip file.
  10. Extract the ATS release package zip file to download the ATS images to the system where network function must be installed.
  11. The ocats-policy directory has following file:
    • ocats-policy-tools-1.7.4.0.0.tgz
  12. The ocats-policy-tools-1.7.4.0.0.tgz file has following images and charts packaged as tar files:
    ocats-policy-tools-1.7.4.0.0.tgz
    
    |
    
    |_ _ _ocats-policy-pkg-1.7.4.0.0.tgz
    
    |      |_ _ _ _ _ _ ocats-policy-1.7.4.tgz (Helm Charts)
    
    |      |_ _ _ _ _ _ ocats-policy-images-1.7.4.tar (Docker Images)
    
    |
    
    |_ _ _ocstub-pkg-1.1.0.0.0.tgz
    
           |_ _ _ _ _ _ ocstub-go-1.1.0.tgz(Helm Charts)
    
           |_ _ _ _ _ _ ocstub-go-image-1.1.0.tar (Docker Images)
  13. The user can copy the tar file from here to their Kubernetes cluster where, they want to deploy ATS.

Deploying ATS in Kubernetes Cluster

To deploy ATS in Kubernetes Cluster:
  1. Execute the following command to extract the tar file content:

    tar -xvf ocats-policy-tools-1.7.4.0.0.tgz

    The output of this command is:
    ocats-policy-pkg-1.7.4.0.0.tgz
    ocstub-pkg-1.7.4.0.0.tgz
  2. Go to the ocats-policy-tools-1.7.4.0.0 folder and execute the following command to extract the final helm charts and docker images of ATS.

    tar -xvf ocats-policy-pkg-1.7.4.0.0.tgz

    The output of this command is:

    ocats-policy-1.7.4.tgz
    ocats-policy-image-1.7.4.tar
  3. In your cluster, execute the given command to load the ATS image.

    docker load --input ocats-policy-image-1.7.4.tar

  4. Execute the following commands to tag and push the ATS images
    docker tag ocatspolicy:1.7.4 <registry>/ocatspolicy:1.7.4
    docker push <registry>/ocatspolicy:1.7.4

    Example:

    docker tag ocats-policy-images:1.7.4 localhost:5000/ocats-policy-images:1.7.4
    docker push localhost:5000/ocats-policy-images:1.7.4
  5. Untar the helm charts, ocats-policy-1.7.4.tgz

    tar -xvf ocats-policy-1.7.4.tgz

  6. Update the registry name, image name and tag in the ocats-policy/values.yaml file as required.

    For this, you need to open the values.yaml file and update the image.repository and image.tag

  7. ATS supports static port. By default, this feature is not available. To enable this feature:
    • In the ocats-policy/values.yaml file under service section, set the value of staticNodePortEnabled parameter as true and provide a valid nodePort value for staticNodePort.
    • A sample screen is given below:

      Figure 2-7 ocats-policy/values.yaml-service section

      img/policy-enabling-static-port.png
  8. To enable service mesh feature:
    1. Under the service section of the values.yaml file, there is a parameter, 'serviceMeshCheck'. By default, this feature is set to false. To get ASM support, set this parameter to true. A snippet of service section in the yaml file is shown below:

      Figure 2-8 Service Mesh Check Enabled

      img/policy-service-mesh-enabled.png
    2. If you do not enable ASM at global level for the namespace, then execute the following command to enable it before deploying the ATS.

      kubectl label --overwrite namespace <namespace_name> istio-injection=enabled

      Example: kubectl label --overwrite namespace ocpcf istio-injection=enabled

  9. Deploy ATS using the updated helm charts (refer to step 5 for helm charts).

    Note:

    You need to ensure that all the three components ATS, Stub and PCF are deployed in the same namespace.

    Using Helm 2 helm install ocats-policy --name <release_name> --namespace <namespace_name> -f ocats-policy/values.yaml

    Example: helm install ocats-policy --name ocats --namespace ocpcf -f ocats-policy/values.yaml

    Using Helm 3 helm3 install -name <release_name> ocats-policy-1.7.4.tgz --namespace <namespace_name> -f <values-yaml-file>

    Example: helm3 install -name ocats ocats-policy-1.7.4.tgz --namespace ocpcf -f ocats-policy/values.yaml

  10. Execute the following command to verify ATS deployment.

    helm status <release_name>

Figure 2-9 Verifying ATS Deployment in Policy Namespace

img/policy-ats-deployed-pcf-namespace.png

Deploying Stub Pod in Kubernetes Cluster

To deploy Stub Pod in Kubernetes cluster:

  1. Go to the ocats-policy-tools-1.7.4.0.0 folder and execute the command to extract the ocstub tar file content.

    tar -xvf ocstub-pkg-1.1.0.0.0.tgz

    The output of this command is:

    ocstub-go-1.1.0.tgz

    ocstub-go-images-1.1.0.tar

  2. In your cluster, execute the following command to load the STUB image and then, push it to your registry.

    docker load --input ocstub-go-image-1.1.0.tar

  3. Untar the helm charts, ocstub-go-1.1.0.tgz.

    tar -xvf ocstub-go-1.1.0.tgz

  4. Update the registry name, image name and tag (if required) in the ocstub-go/values.yaml file as required.

    Open the values.yaml file and update the image.repository and image.tag

  5. If required, change the apiVersion to apps/v1 in the ocstub-go/templates/deployment.yaml file as shown below.

    apiVersion: apps/v1

  6. Deploy Stub.

    Using Helm 2: helm install ocstub-go --set service.name=<service> --name <name> --namespace <namespace_name> -f ocstub-go/values.yaml

    Example:
    helm install ocstub-go --set service.name=nf1stub --name nf1stub 
    --namespace ocats -f ocstub-go/values.yaml
    
    helm install ocstub-go --set service.name=nf2stub --name nf2stub 
    --namespace ocats -f ocstub-go/values.yaml
    
    helm install ocstub-go --set service.name=nf3stub --name nf3stub 
    --namespace ocats -f ocstub-go/values.yaml

    Using Helm 3:helm3 install -name <release_name> ocstub-go-1.1.0.tgz --set service.name=<stub-service-name> --namespace <namespace_name> -f <valuesyaml-file>

    Example:
    helm3 install -name nf1stub ocstub-go-1.1.0.tgz --set service.name=nf1stub 
    --namespace ocats -f ocstub-go/values.yaml
    
    helm3 install -name nf2stub ocstub-go-1.1.0.tgz --set service.name=nf2stub 
    --namespace ocats -f ocstub-go/values.yaml
    
    helm3 install -name nf3stub ocstub-go-1.1.0.tgz --set service.name=nf3stub 
    --namespace ocats -f ocstub-go/values.yaml

    Figure 2-10 Stub - Checking Helm Status

    img/policy-checking-helm-status.png
  7. Similarly, execute the following commands to install all the stubs.

    helm install ocstub-go --set service.name=nf2stub --name nf2stub --namespace ocats -f ocstub-go/values.yaml

    helm install ocstub-go --set service.name=nf3stub --name nf3stub --namespace ocats -f ocstub-go/values.yaml

  8. Execute the following command to check the Stub deployment.

    helm status <release_name>

A sample screen showing stubs deployment is given below:

Figure 2-11 Stubs After Installation

img/policy-stubs-installation.png

Figure 2-12 Policy Namespace

img/policy-namespace.png

SCP ATS Installation Procedure

The SCP ATS installation procedure covers two steps:

  1. Locating and downloading the ATS images.
  2. Deploying ATS images.

Locating and Downloading ATS Images

The steps to locate and download ATS Images are as follows:

  1. Login to My Oracle Support using the appropriate credentials.
  2. Select Patches & Updates tab.
  3. In the Patch Search console, select Product or Family (Advanced) tab.
  4. Enter Oracle Communications Cloud Native Core - 5G in Product field and select the product from the Product drop-down.
  5. Select Oracle Communications Cloud Native Core Service Communication Proxy <release_number> in Release field.
  6. Click Search. The Patch Advanced Search Results list appears.
  7. Select the required ATS patch from the list. The Patch Details window appears.
  8. Click Download. The File Download window appears.
  9. Click the <p********_<release_number>_Tekelec>.zip file.
  10. Extract the ATS release package zip file to download the ATS images to the system where network function must be installed.
  11. The ocats-scp directory has following files:
    ocats-scp-pkg-1.7.3.0.0.tgz
    ocats-scp-pkg-1.7.3.0.0-README.txt
    ocats-scp-custom-configtemplates-1.7.3.0.0.zip
    ocats-scp-custom-configtemplates-1.7.3.0.0-readme.txt

    Note:

    The ocats-scp-pkg-1.7.3.0.0-README.txt file contains all the information required for the package.
    The ocats-scp-pkg-1.7.3.0.0.tgz file has following images and charts packaged as tar files:
    ocats-scp-pkg-1.7.3.0.0.tgz
    
          |
    
          |_ _ _ocats-scp-pkg-1.7.3.0.0.tgz
    
          |        |_ _ _ _ _ _ ocats-scp-1.7.3.tgz (Helm Charts)
    
          |        |_ _ _ _ _ _ ocats-scp-images-1.7.3.tar (Docker Images)
    
          |        |_ _ _ _ _ _ Readme-internal.txt
    The ocats-scp-custom-configtemplates-1.7.3.0.0.zip file has following images and charts packaged as tar files:
    ocats-scp-custom-configtemplates-1.7.3.0.0.zip
    
            |_ _ _ _ _ _ ocats-scp-custom-serviceaccount-1.7.3.yaml (Template to create custom service account)
    
            |_ _ _ _ _ _ ocats_scp_values_1.7.3.yaml (Custom values file for installation)

    The user can copy the tar file from here to their kubernetes cluster where, they want to deploy ATS.

Deploying ATS in Kuberbetes Cluster

The steps to deploy ATS in Kubernetes Cluster are as follows:

Note:

Deploy ATS and SCP in the same namespace.

Note:

ATS is deployed with role binding by default instead of cluster role binding.
  1. Execute the following command to extract the tar file content.

    tar -xvf ocats-scp-pkg-1.7.3.0.0.tgz

    The output of this command is:
    ocats-scp-1.7.3.tgz
    ocats-scp-images-1.7.3.tar
    Readme-internal.txt

    The ocats-scp-images-1.7.3.tar file contains ocats-scp:1.7.3 (ATS Image) and ocats-gostub:1.7.3 (stub image).

  2. In your cluster, execute the given command to load the ATS image and then, push it to your registry.

    docker load --input ocats-scp-images-1.7.3.tar

  3. Execute the following command to extract the zip file content.
    Unzip "ocats-scp-custom-configtemplates-1.7.3.0.0.zip"
    The output of this command is:
    ocats_scp_values_1.7.3.yaml
    ocats-scp-custom-serviceaccount-1.7.3.yaml
  4. Update the image name and tag in the ocats_scp_values_1.7.3.yaml file as required.

    For this, you need to open the ocats_scp_values_1.7.3.yaml file and update the image.repository and image.tag

  5. ATS supports static port. By default, this feature is not available. To enable this feature:
    • In the ocats_scp_values_1.7.3.yaml file under service section, set the value of staticNodePortEnabled parameter as true and provide a valid nodePort value for staticNodePort.
    • A sample screen is given below:

      Figure 2-13 ocats_scp_values_1.7.3.yaml - service section

      img/nrf-service-section.png

      Note:

      You can enable static node port at the time of deployment.
  6. The lbDeployments section of the helm deployment file in SCP ATS is updated with following annotations, wherein
    • 8080 port is added to open ATS Jenkins GUI

      traffic.sidecar.istio.io/excludeInboundPorts: "8080"

    • 8091 port is added to fetch soothsayer pod metrics

      traffic.sidecar.istio.io/excludeOutboundPorts: "8091"

      Note:

      THE ATS USER SHOULD NOT MODIFY THESE PORTS.
  7. Execute the following command to deploy ATS.

    Using Helm 2: helm2 install ocats-scp-1.7.3.tgz --name <release_name> --namespace <namespace_name> -f ocats_scp_values_1.7.3.yaml

    Example: helm2 install ocats-scp-1.7.3.tgz --name ocats-scp --namespace scpsvc-f ocats_scp_values_1.7.3.yaml

    Using Helm 3: helm3 install <release_name> ocats-scp-1.7.3.tgz -n <namespace_name> -f ocats_scp_values_1.7.3.yaml

    Example: helm3 install ocscp-ats ocats-scp-1.7.3.tgz -n scpsvc -f ocats_scp_values_1.7.3.yaml

    Note:

    If you have two Helm versions on your system then, you have to specify version number in the Helm commands you are executing. If there is only one Helm version then there is no need to mention version number.
  8. Verify ATS deployment by executing the given command.
    helm3 status <release_name> -n <namespace_name>

    Figure 2-14 Helm Status Image

    img/figure-2-13.png

SLF ATS Installation Procedure

The SLF ATS installation procedure covers two steps:

  1. Locating and downloading the ATS images.
  2. Deploying ATS images.

Locating and Downloading ATS Images

The steps to locate and download ATS Images are as follows:

  1. Login to My Oracle Support using the appropriate credentials.
  2. Select Patches & Updates tab.
  3. In the Patch Search console, select Product or Family (Advanced) tab.
  4. Enter Oracle Communications Cloud Native Core - 5G in Product field and select the product from the Product drop-down.
  5. Select Oracle Communications Cloud Native Core Unified Data Repository <release_number> in Release field.
  6. Click Search. The Patch Advanced Search Results list appears.
  7. Select the required ATS patch from the list. The Patch Details window appears.
  8. Click Download. The File Download window appears.
  9. Click the <p********_<release_number>_Tekelec>.zip file.
  10. Extract the ATS release package zip file to download the ATS images to the system where network function must be installed.
  11. The ocats_slf directory has following files:
    ocats-slf-pkg-1.7.1.0.0.tgz
    
          |_ _ _ _ _ _ ocats-slf-1.7.1.tgz (Helm Charts)
    
         |_ _ _ _ _ _ ocats-slf-images-1.7.1.tar (Docker Images)

    The user can copy the tar file from here to their kubernetes cluster where they want to deploy ATS.

Preparing to Deploy ATS in Kuberbetes Cluster

The steps to deploy ATS in Kubernetes Cluster are as follows:

Note:

Deploy ATS and SLF in the same namespace.
  1. Execute the following command to extract the tar file content.

    tar -xvf ocats-slf-pkg-1.7.1.0.0.tgz

    The output of this command is:
    ocats-slf-1.7.1.tgz
    ocats-slf-images-1.7.1.tar

    The ocats-slf-images-1.7.1.tar file contains ocats-slf-images-1.7.1 (ATS Image).

  2. In your cluster, execute the given command to load the ATS image.

    docker load --input ocats-slf-images-1.7.1.tar

  3. Execute the following command to tag and push the ATS image to your registry.
    docker tag ocats-slf-images-1.7.1:1.7.1 <registry>/ocats-slf-images-1.7.1:1.7.1
    docker push <registry>/ocats-slf-images-1.7.1:1.7.1
    Example:
    docker tag ocats-slf-images-1.7.1:1.7.1 localhost:5000/ocats-slf-images-1.7.1:1.7.1
    docker push localhost:5000/ocats-slf-images-1.7.1:1.7.1
  4. Execute the following command to untar the helm charts (ocats-slf-1.7.1.tgz) and update the registry name, image name and tag (if required) in the ocats-slf/values.yaml file.
    tar -xvf ocats-slf-1.7.1.tgz
    The list of content in ocats-slf is:
    ocats-slf
    ├── Chart.yaml
    ├── destination-rule-ats.yaml
    ├── policy.yaml
    ├── templates
    │   ├── deployment.yaml
    │   ├── _helpers.tpl
    │   ├── ingress.yaml
    │   ├── NOTES.txt
    │   ├── serviceaccount.yaml
    │   └── service.yaml
    └── values.yaml
  5. ATS supports static port. By default, this feature is not available. To enable this feature:
    • In the ocats-slf/values.yaml file under service section, add the staticNodePortEnabled parameter as true and staticNodePort parameter with valid nodePort value. A sample screen is given below:

      Figure 2-15 ocats-slf/values.yaml - service section

      img/nrf-service-section.png

Enabling Service Mesh at Namespace Level

Note:

This section is applicable only if you are planning to deploy ATS on service mesh enabled system.

Execute the following command to enable service mesh at the namespace level.

kubectl label --overwrite namespace <namespace_name> istio-injection=enabled

Example:

kubectl label --overwrite namespace ocudr istio-injection=enabled

Deploying ATS Pod in Kubernetes Cluster

You can deploy ATS Pod in Kubernetes cluster using Helm 2 or Helm 3 commands.

Using Helm 2

Execute the following command to deploy ATS.

helm install --name <release_name> --namespace <namespace_name> -f <values-yaml-file> ocats-slf

Example: helm install --name ocats-slf --namespace ocudr -f ocats-slf/values.yaml ocats-slf

Using Helm 3

Execute the following command to deploy ATS.

helm3 install -name <release_name> --namespace <namespace_name> -f <values-yaml-file> ocats-slf

Example: helm3 install -name ocats-slf --namespace ocudr -f ocats-slf/values.yaml ocats-slf

To verify ATS deployment, execute the following command:

helm status <release_name>

Figure 2-16 Verifying ATS Deployment

img/verifying-ats-deployment.png
Below is a sample screen showing UDR and ATS installed in the SLF namespace:

Figure 2-17 ATS and SLF Deployed in Same Namespace

img/udr-and-ats-deployed-same-namespace.png
If the ATS deployment is done with side car of service mesh, you need to ensure that the ATS shows 2 containers in ready state as "2/2". A sample output of the command is given below:

Figure 2-18 ATS Deployed with Side Car of Service Mesh

img/ats-deployed-side-care-service-mesh.png

Creating a Policy and Destination Rule

Following steps to create a policy are applicable only if a service mesh is enabled at the namespace level:

  1. Edit the policy.yaml file as follows:
    • Change the spec.targets.name to ocats-slf svc name.
    • Change the namespace in which ocats-slf is deployed.

    The policy.yaml file snippet is given below:

    apiVersion: "authentication.istio.io/v1alpha1"
    kind: Policy
    metadata:
      name: ocats-slf
      namespace: myudr
    spec:
      targets:
      - name: ocats-slf
      peers:
      - mtls:
          mode: PERMISSIVE
  2. Execute the following command to create a policy:

    kubectl create -f policy.yaml

    Output: policy.authentication.istio.io/ocats-slf is created.

Following steps to create a destination rule are applicable only if a service mesh is enabled at the namespace level:
  1. If Service Mesh check is enabled, you need to create a destination rule to fetch the metrics from the Prometheus. This is so because in most of the deployments, Prometheus is kept outside of the service mesh and a destination rule is required to communicate between TLS enabled entity (ATS) and non-TLS entity (Prometheus). To create a destination rule:
    kubectl apply -f - <<EOF
    apiVersion:networking.istio.io/v1alpha3
    kind:DestinationRule
    metadata:
      name:prometheus-dr
      namespace:myudr
    spec:
      host:oso-prometheus-server.myudr.svc.cluster.local
      trafficPolicy:
        tls:
          mode:DISABLE
    EOF
    In the above rule,
    • name indicates the name of destination rule.
    • namespace indicates where the ATS (ocats-slf) is deployed.
    • host indicates the hostname of the prometheus server. Change the spec.host value to fqdn of Prometheus server.
  2. Execute the following command to create a policy:

    kubectl create -f destination-rule-ats.yaml

    Output: destinationrule.networking.istio.io/ocats-slf-dr is created.