4 Deploying AIA Cloud Native

This chapter provides information about deploying AIA cloud native. AIA cloud native deployment leverages the SOA cloud native deployment scripts and uses Helm charts for configuration management.

The configuration details for AIA cloud native are the same as the configuration of standard deployments such as connection details, credentials, and XRef details of edge applications.

Along with AIA configuration details, SOA configuration details, such as RCU schema, domain parameters and other configurations are also managed by Helm charts. Helm charts are organized in a hierarchy and a master chart holds the references to several child charts for better management.

Deploying SOA Cloud Native

Deploy SOA cloud native as per the instructions provided in the Oracle SOA Suite documentation.

Deploying SOA cloud native has the following tasks:

Creating PV-PVCs

You can create AIA PV-PVCs by using the values.yaml files.

To create AIA PV-PVCs:
  1. Update the following values.yaml files as per your requirement:
    • $AIA_DIR/oc-cn-aia-comms/helm-charts/aia-comms-chart/values.yaml. See "Global Parameters" for details about the parameters.
    • $AIA_DIR/oc-cn-aia-comms/helm-charts/aia-comms-chart/charts/aia-comms-pv-pvc/values.yaml. See "Parameters for AIA PV-PVC" for details about the parameters.
  2. Run the following command to install the Helm chart:
    $ cd $AIA_DIR/oc-cn-aia-comms/helm-charts/
    $ helm install aia-comms-pv-pvc \
         aia-comms-chart/charts/aia-comms-pv-pvc/ \
         --namespace namespace \
         --values ./aia-comms-chart/values.yaml
    This creates the following:
    • Kubernetes PV PVC
    • Kubernetes job aia-comms-create-home-job to populate AIA PV
    • Service Account with name domain_name-cluster-kubectl
    • ClusterRole of name domain_name-access-pod-cluster-role
    • RoleBinding of name domain_name-access-pod-role-binding
  3. Wait till the aia-comms-create-home-job job completes.
    $ kubectl wait --for=condition=complete job.batch/aia-comms-create-home-job -n namespace
    Alternatively, this can also be confirmed by checking the status of the Kubernetes job or pod by running the following commands:
    $ kubectl get pods -n namespace
    $ kubectl get jobs -n namespace

Updating the Oracle SOA Suite Domain

To update the Oracle SOA Suite domain with the AIA PV:
  1. Stop the Oracle SOA Suite domain:
    $ cd $AIA_DIR/fmw-kubernetes/OracleSOASuite/kubernetes/domain-lifecycle/
    $ sh stopDomain.sh -d domain -n namespace -v

    (Optional. This does not add extra time.) To get more information on the shutdown process, you can run:

    $ cd $AIA_DIR/oc-cn-aia-comms/scripts/common
    $ sh waitForCluster.sh -a shutdown -d domain -n namespace
    Confirm all servers are down.
  2. Do any one of the following to update the AIA PV with domain:
    • Run the following AIA cloud native scripts:
      $ cd $AIA_DIR/oc-cn-aia-comms/scripts
      # Remove any existing domain.yaml file from the folder
      $ rm domain.yaml
      $ sh register-AIAPV.sh \
          -n namespace \
          -d domain_name \
          -c cluster_name \
          -w SOA_PVC_name \
          -p AIA_PVC_name \
          -f $WORKDIR/create-soa-domain/domain-home-on-pv/path_to_output-directory/weblogic-domains/domainUID/domain.yaml
      This script does the following:
      • Appends the volumes and volumeMounts with the AIA PVC details to the Oracle SOA Suite domain
      • Runs the kubectl apply operation
      • Waits till all the managed servers are available
    • Update manually:
      $ cd $WORKDIR/create-soa-domain/domain-home-on-pv/
      $ vi path_to_output-directory/weblogic-domains/domainUID/domain.yaml
      # Take a backup of YAML file before making any changes.
      #
      # Append volumes in volumes section
      #    - name: aia-comms-shared-storage-volume
      #      persistentVolumeClaim: 
      #        claimName: AIA_PVC_name
       
      # Append volumeMounts in volumeMounts section
      # Do not change the mount path here.
      #    - mountPath: /u01/shared
      #      name: aia-comms-shared-storage-volume
       
      # Apply the new changes
      $ kubectl apply -f path_to_output-directory/weblogic-domains/domainUID/domain.yaml
      Wait till all the managed servers are up.