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:
- Preparing the environment
For instructions, refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/.
Perform all required steps and as per your requirement. For example, the following are some steps you perform based on your requirements:- Installing WebLogic Operator:
- Get dependent images. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#get-dependent-images.
- Install the WebLogic Kubernetes Operator. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#install-the-weblogic-kubernetes-operator.
- Preparing the environment for Oracle
SOA Suite domains:
- Create a namespace. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#create-a-namespace-for-an-oracle-soa-suite-domain.
- Create a persistent storage. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#create-a-persistent-storage-for-an-oracle-soa-suite-domain.
- Create a Kubernetes secret with domain credentials. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#create-a-kubernetes-secret-with-domain-credentials.
- Create a Kubernetes secret with the RCU credentials. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#create-a-kubernetes-secret-with-the-rcu-credentials.
- Configure access to your database. Refer to the information at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/installguide/prepare-your-environment/#configure-access-to-your-database.
- Run the Repository Creation
Utility to set up your database schemas (create
schemas).
Note:
Use the AIA cloud native image with the utility (command).
- Installing WebLogic Operator:
- Creating the SOA domain
Note:
Use the AIA cloud native image for deploying the SOA domain. Also, ensure that you include the-Dweblogic.rjvm.allowUnknownHost=true
parameter. For more information, refer to the WKO documentation on Oracle GutHub at: https://oracle.github.io/weblogic-kubernetes-operator/managing-domains/accessing-the-domain/external-clients/#enabling-unknown-host-access. - Configuring a load balancer
Configure a load balancer as per your requirement. Refer to the instructions at: https://oracle.github.io/fmw-kubernetes/23.4.2/soa-domains/adminguide/configure-load-balancer/.
Creating PV-PVCs
You can create AIA PV-PVCs by using the values.yaml files.
-
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.
- 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
- Wait till the aia-comms-create-home-job job
completes.
Alternatively, this can also be confirmed by checking the status of the Kubernetes job or pod by running the following commands:$ kubectl wait --for=condition=complete job.batch/aia-comms-create-home-job -n namespace
$ kubectl get pods -n namespace $ kubectl get jobs -n namespace
Updating the Oracle SOA Suite Domain
- 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:
Confirm all servers are down.$ cd $AIA_DIR/oc-cn-aia-comms/scripts/common $ sh waitForCluster.sh -a shutdown -d domain -n namespace
- Do any one of the following to update the AIA PV with domain:
-
Run the following AIA cloud native scripts:
This script does the following:$ 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
- 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:
Wait till all the managed servers are up.$ 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
-