SAMi - Smart API Marketplace Documentation

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 2 Current »

Installation Steps

Gather all the information mentioned below before proceeding to step 1.

Name

Description

PORTAL_DB_USER

Specifies the username for accessing the portal's database.

PORTAL_DB_PWD

Defines the password associated with the username for database access in the portal.

PORTAL_DB_HOST

Identifies the host address or server location of the portal's database.

PORTAL_DB_PORT

Designates the port number used for connecting to the portal's database.

PORTAL_DB_NAME

Specifies the name of the database within the portal to which connections are made.

PORTAL_URL

Represents the URL endpoint or web address for accessing the portal interface.

INTEGRATION_HOST_ALIAS

Host alias used for installing the Integration services. Please refer to the Integration services installation for more details.

Table 1.1 Configuration Property Reference

Step 1 - Create SAMi Portal Configuration file

  1. Create a directory on your system to serve as the base directory for SAMi-platform installation

mkdir sami-platform
  1. Change to the directory using the following command:

cd sami-platform
  1. Create the Environment Configuration file using the template below:

# Default values for liferay-umbrella.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

global:
  settings:
    integrationUrl: "https://<INTEGRATION_HOST_ALIAS>/vsp/api"   # (refer table 1.1)
  pv:
    create: false
  liferay:
    enabled: true
    https:
      enabled: true # "By default HTTPS connection is enabled to disable HTTPS the value should be set: false"
  portaldb:
    enable: true 
    user: "<PORTAL_DB_USER>" # (refer table 1.1)
    password: "<PORTAL_DB_PWD>" # (refer table 1.1)
    # Postgres 
    url: "jdbc:postgresql://<PORTAL_DB_HOST>:<PORTAL_DB_PORT>/<PORTAL_DB_NAME>?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false" # PORTAL_DB_HOST & Others refer table 1.1
    driver: "org.postgresql.Driver"
  nginx:
    istio: <ISTIO_NAME> # PLease provide the name of the Istio ingress. The default value is "ingressgateway"
    image:
      tag: "3.0.1" # Please provide the docker image tag 
    protocol: "HTTP" 
    port: 
      number : "80" 
    securePort:
      number: "443"
      protocol: "HTTP"
    secure: 
      enabled: true 
      credentialName: <sami-portal-tls>  # Refers to the Kubernetes secret name for holding the SAMi Alias/hostname full chain certificate & key
    integration:
      enabled: false  
    domain: 
      use: true
      name:
      - "<portal_url>"  # Enter the SAMi Alias/Hostname which is used for accessing the portal
  mysql:
    enabled: false # Enable the value to true in case mysql is being used
  pgadmin:
    enabled: false

tags:
  portal: true
  mysql: false

liferay:
  community:
    enabled: true
  dxp:
    enabled: false
  # requires modification
  osgi:
    s3:
      enabled: false
      accessKey: ""
      bucketName: "<name-of-s3-bucket>"
      s3Endpoint: "s3.us-east-1.amazonaws.com"
      s3Region: "us-east-1"
      secretKey: ""
    elastic:
      enabled: true 

Save the configuration in a file called sam-portal-values.yaml

Sample Reference

Please find a sample reference for the above configuration file:

global:
  settings:
    integrationUrl: "https://sam-gateway.global.cloud/vsp/api"
  pv:
    create: false
  liferay:
    enabled: true
    https:
      enabled: true # By Default the value is set to "false". To enable the HTTPS based url set it to "true"
  portaldb:
    enable: true
    user: "postgres"
    password: "test123+"
    # Postgres
    url: "jdbc:postgresql://xxxxxxx.cjip1jjvpzht.xxxxx.rds.amazonaws.com:5432/sami-portal-db?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false"
    driver: "org.postgresql.Driver"
  nginx:
    istio:ingress
    image:
      tag: "3.0.1"
    protocol: "HTTP"
    port:
      number : "80"
    securePort:
      number: "443"
      protocol: "HTTP"
    secure: 
      enabled: false
      credentialName: portal-creds
    domain:
      use: true
      name: 
      - samportal.global.cloud
  mysql:
    enabled: false
  integration:
    enabled: false
  pgadmin:
    enabled: false

tags:
  portal: true
  mysql: false

nginx:
  image:
    tag: "3.0.1" # check on it
    pullPolicy: Always

liferay:
  community:
    enabled: true
  dxp:
    enabled: false
  osgi:
    s3:
      enabled: false
      accessKey: ""
      bucketName: "sam-bucket"
      s3Endpoint: "s3.us-east-1.amazonaws.com"
      s3Region: "us-east-1"
      secretKey: ""
    elastic:
      enabled: true

Step 2 - Install the SAMi Portal

Chart download and installation

  1. Download the HELM Chart to the base directory of sami-platform

helm pull oci://registry-1.docker.io/mysami/sam-portal-chart --version 3.0.0

upon successfully running the above command sam-portal-chart-3.0.0.tgz should be downloaded.

The outlined process above represents the anticipated future methodology for downloading Helm charts. However, as of the present moment, acquiring Helm charts and establishing the secret for image retrieval necessitates the execution of steps 7, 8, and 9 detailed in the subsequent section.

  1. Validate the Download of Helm Chart

ls -ltr
-rw-r--r--  1 staff  staff  42188 Sep 29 18:10 sam-portal-chart-3.0.0.tgz
  1. Validate that Kubectl is installed on the local workstation with the supported version and is compatible with the k8s server

kubectl version
  1. Check the current context and ensure you are connected to the intended cluster

kubectl config current-context
  1. Validate that the namespace intended for deployment is available. If not present go to 6.

kubectl get ns | grep "sami-platform"
  1. If the namespace is not present run the below commands to create the namespace

namespace=${K8_NAMESPACE:-sami-platform}
kubectl create ns $namespace

Reference for steps 5 & 6


A. Please refer to the below example for more details.

kubectl get ns | grep "sami-platform"
kubectl get pods -n sami-platform

B. The output should look like below:

kubectl get ns | grep "sami-platfrom"
sam-portal-system

kubectl get pods -n sami-platform
No resources found in test namespace.
  1. Configure AWS by running the below command and the details will be provided by the product team.

aws configure --region us-east-1

The below table provides all the required details for the above command.

Name

Value

AWS Access Key ID

Ref Provided Info

AWS Secret Access Key

Ref Provided Info

Default Region Name

us-east-1

Default Output format

json

  1. To configure the secret use the below command:

kubectl create secret docker-registry sam-regcred \
        --docker-server=865615422972.dkr.ecr.us-east-1.amazonaws.com \
        --docker-username=AWS \
        --docker-password=`aws ecr get-login-password` \
        -n $namespace

Verify the secret creation by running the below:

kubectl get secret -n $namespace | grep "sam-regcred"
  1. Download the HELM Chart by running below to set the credentials and to download helm charts:

aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/sidgs
export HELM_EXPERIMENTAL_OCI=1
helm pull oci://public.ecr.aws/sidgs/sam-portal-chart --version 3.0.1

Install Chart

  1. Validate the sam-portal-values.yaml using the steps given below:

helm install sam-portal ./sam-portal-chart-3.0.1.tgz \
  -f sam-portal-values.yaml \
  -n $namespace \
  --dry-run

Note: The complete SAMi portal Kubernetes Manifest is printed upon successful interpretation.

  1. Install the sami-portal by running step 1 without the dry-run flag

helm install sam-portal ./sam-portal-chart-3.0.1.tgz \
  -f sam-portal-values.yaml \
  -n $namespace

The output should look something similar to below:

NAME: sam-portal
NAMESPACE: sami-platform
STATUS: deployed
REVISION: 1

Helm install will fail if you are trying to rerun the setup due to any sort of wrong environment configuration being passed in the sam-portal-values.yaml . Please run the below Helm upgrade command for upgrading the deployment.

Validate the helm upgrade by passing the dry-run flag.

helm upgrade sam-portal ./sam-portal-chart-3.0.1.tgz \
  -f sam-portal-values.yaml \
  -n $namespace \
  --dry-run

The complete SAMi portal Kubernetes Manifest is printed upon successful interpretation. Then run the above command without the dry-run flag for upgrading.

helm upgrade sam-portal ./sam-portal-chart-3.0.1.tgz \
  -f sam-portal-values.yaml \
  -n $namespace

Step 3 - Validate the Installation

  1. Please navigate to the designated PORTAL_URL using your preferred web browser. The expected appearance is illustrated below. If the portal does not match the basic site layout depicted, an additional restart is advised. Detailed instructions for this can be found in the troubleshooting section below

  1. Verify the pod status by listing all the pods in the current namespace using the command:

kubectl get pods -n $namespace
NAME                              READY   STATUS    RESTARTS   AGE
sam-app-server-547987c7b-d47kt    1/1     Running   0          6d
sam-web-server-7bf994d976-p5bmk   1/1     Running   0          6d
sami-master-0                     1/1     Running   0          6d

After confirming that the aforementioned screen is displayed as shown in Figure 1, and ensuring that all pods are operational, you may proceed to the subsequent step.

Troubleshooting the Installation

In case the portal doesn’t load up properly, please follow the below steps:

  1. Scale down the sam-app-server to 0, then scale back to 1 which takes the app server about 3-5 minutes to start.

    1. Scale down the sam-app-server to 0 by running the below command:

      kubectl scale deployment sam-app-server --replicas=0 -n sami-platform

b. Verify whether scale down was successful before scaling up.

kubectl get deployment sam-app-server -n sami-platform
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
sam-app-server   0/0     0            0           7d21h

c. Scale up the deployment to 1.

kubectl scale deployment sam-app-server --replicas=1 -n sami-platform
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
sam-app-server   1/1     1            1          7d21h

Once the above figure 1 is visible, continue to the next step.

  • No labels