Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Follow the steps given below to run a WSO2 product as a service on Private PaaS, which runs on Kubernetes:

Table of Contents

 

Step 1: Deploying Private PaaS on a preferred IaaS

...

Panel
  1. Download the required product pack from the respective product download page.

    Info

    Example: Download ESB from here.

  2. Copy the downloaded .zip file to the packs folder, which is in the /etc/puppet/modules/wso2installer/files/<SERVER_NAME> directory. 
    Example: When configuring ESB, copy the file to the /etc/puppet/modules/wso2installer/files/wso2esb481/packs directory.

 

Step 3:

...

Building and importing Docker images

Panel
  1. Download the Private PaaS cartridges from the product page.

  2. Navigate to the <PRIVATE-PAAS-CARTRIDGES>/wso2esb/4.8.1/docker directory.

    Code Block
    cd <PRIVATE-PAAS-CARTRIDGES>/wso2esb/4.8.1/docker
  3. Run the build.sh file to build the Docker image.

    Info

    This will copy the plugins and the Template Module to the Docker image.

    Code Block
    ./build.sh
  4. List the Docker images.

    Code Block
    docker images

    Example response format: If you have successfully build the Docker image, you will get the following as the response:

    Code Block
    wso2/das        3.0.0              ac57800e96c2        2 minutes ago         777.6 MB
  5. Save the new image to a .tar file.

    Code Block
    docker save <NEW_IMAGE_NAME> > <LOCATION_OF_OF_TAR_FILE>

    For example:

    Code Block
    docker save myppaasimage > /tmp/myppaasimage.tar
  6. Copy the Docker image to the Kubernetes minion node.

    Code Block
    scp <IMAGE_NAME>.tar core@<NODE_IP>:

    Example:

    Code Block
    scp myppaasimage.tar core@172.17.8.102:
    Info

    Execute the kubectl get nodes command to get the IP address of the Kubernetes nodes.

  7. SSH into the Kubernetes node using one of the following commands:

    Code Block
    ssh core@<NODE_IP> or vagrant ssh node-01
  8. Load the .tar file to the Kubernetes node.

    Code Block
    docker load < <LOCATION_OF_OF_TAR_FILE>

    Example:

    Code Block
    docker load < /tmp/myppaasimage.tar
Info

If more than one Kubernetes node exists, repeat step 4, 5 and 6 for the remaining nodes.

...

Panel
  • Cartridge JSON
    Configure the following parameters in the cartridge JSON file:
    • Ensure that the imageId under the iaasProvider is the same as the Docker image you created, if you are running Private PaaS on Kubernetes.
    • Update the datasource configurations, i.e DB URLs, username and password, under properties.

      Info

      Update datasource configurations for all cartridge JSON files that run on all IaaS, except the Mock IaaS.

      Expand
      titleDatasource configurations
      Code Block
      {
        "name": "payload_parameter.CONFIG_PARAM_REGISTRY_DB_URL",
        "value": "jdbc:mysql://192.168.30.7:3306/stratos_reg_db?autoReconnect=true"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_REGISTRY_DB_USER_NAME",
        "value": "<USER_NAME>"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_REGISTRY_DB_PASSWORD",
        "value": "<PASSWORD>"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_CONFIG_DB_URL",
        "value": "jdbc:mysql://192.168.30.7:3306/config_db_esb?autoReconnect=true"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_CONFIG_DB_USER_NAME",
        "value": "<USER_NAME>"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_CONFIG_DB_PASSWORD",
        "value": "<PASSWORD>"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_USER_MGT_DB_URL",
        "value": "jdbc:mysql://192.168.30.7:3306/stratos_user_db?autoReconnect=true"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_USER_MGT_DB_USER_NAME",
        "value": "<USER_NAME>"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_USER_MGT_DB_PASSWORD",
        "value": "<PASSWORD>"
      }

      Example:

      Code Block
      {
        "name": "payload_parameter.CONFIG_PARAM_REGISTRY_DB_URL",
        "value": "jdbc:mysql://192.168.30.7:3306/stratos_reg_db?autoReconnect=true"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_REGISTRY_DB_USER_NAME",
        "value": "root"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_REGISTRY_DB_PASSWORD",
        "value": "root"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_CONFIG_DB_URL",
        "value": "jdbc:mysql://192.168.30.7:3306/config_db_esb?autoReconnect=true"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_CONFIG_DB_USER_NAME",
        "value": "root"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_CONFIG_DB_PASSWORD",
        "value": "root"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_USER_MGT_DB_URL",
        "value": "jdbc:mysql://192.168.30.7:3306/stratos_user_db?autoReconnect=true"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_USER_MGT_DB_USER_NAME",
        "value": "root"
      },
      {
        "name": "payload_parameter.CONFIG_PARAM_USER_MGT_DB_PASSWORD",
        "value": "root"
      }
  • Network Partition JSON
    Configuring the network partition is optional. Define the load balancer port IPs under property.
  • Application JSON
    If the application is a single tenant application, ensure to add the artifact repository related details in subscribableInfo, under the artifactRepository section, of the application JSON definition.
    Example:

    Code Block
    "artifactRepository":{  
       "privateRepo":false,
       "repoUrl":"https://github.com/lakwarus/single-cartridge.git",
       "repoUsername":"",
       "repoPassword":""
    }
    Info

    By subscribing to an application you can deploy a custom application artifacts in Private PaaS.

  • Application Sign Up JSON
    Sign up to the application if the application is a multi-tenant application.

    Info

    For more information on application sign up see, signing up to an application.

 

Step 6:

...

Deploying WSO2 products on Private PaaS

Panel
  1. Navigate to the application directory of the preferred WSO2 product.

    Code Block
    cd <PRIVATE_PAAS_CARTRIDGES_HOME>/<SERVER_NAME>/<VERSION>/samples/applications/<SERVER_NAME>-<VERSION>-application/scripts/<IAAS>

    Example:

    Code Block
    cd <PRIVATE_PAAS_CARTRIDGES_HOME>/wso2das/3.0.0/samples/applications/wso2das-300-application/scripts/mock
  2. Deploy the application.

    Code Block
    ./deploy.sh

...