Create Oracle WebCenter Content domain

Contents

Run the create domain script

Run the create domain script, specifying your inputs file and an output directory to store the generated artifacts:

$ cd ${WORKDIR}/create-wcc-domain/domain-home-on-pv/

$ ./create-domain.sh \
  -i create-domain-inputs.yaml \
  -o <path to output-directory>

The script will perform the following steps:

  • Create a directory for the generated Kubernetes YAML files for this domain if it does not already exist. The path name is <path to output-directory>/weblogic-domains/<domainUID>. If the directory already exists, its contents must be removed before using this script.
  • Create a Kubernetes job that will start up a utility Oracle WebCenter Content container and run offline WLST scripts to create the domain on the shared storage.
  • Run and wait for the job to finish.
  • Create a Kubernetes domain YAML file, domain.yaml, in the “output” directory that was created above. This YAML file can be used to create the Kubernetes resource using the kubectl create -f or kubectl apply -f command.

Run the managed-server-wrapper script

Run oke-start-managed-server-wrapper.sh script, which intrenally applies the domain YAML. This script also applies initial configurations for Managed Server containers and readies Managed Servers for future inter-container communications.

$ cd ${WORKDIR}/create-wcc-domain/domain-home-on-pv/

$ ./oke-start-managed-servers-wrapper.sh -o <path_to_output_directory> -l <load_balancer_external_ip> -p <load_balancer_port>

Run the startup configuration scripts for IPM and WCCADF applications as applicable

Run the script configure-ipm-connection.sh to do startup configurations if IPM is enabled.

$ cd ${WORKDIR}/create-wcc-domain/domain-home-on-pv/
$ ./configure-ipm-connection.sh -l <load_balancer_external_ip> -p <load_balancer_port>

Run the script configure-wccadf-domain.sh to do startup configurations if ADFUI is enabled.

$ cd ${WORKDIR}/create-wcc-domain/domain-home-on-pv/
$ ./configure-wccadf-domain.sh -n <node_ip>

Patch the domain for the changes to be applied to the domain.

#STOP
$ kubectl patch domain DOMAINUID -n NAMESPACE --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "NEVER" }]'

sleep 2m

#START
$ kubectl patch domain DOMAINUID -n NAMESPACE --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IF_NEEDED" }]'

Verify the results

The create domain script will verify that the domain was created, and will report failure if there was any error. However, it may be desirable to manually verify the domain, even if just to gain familiarity with the various Kubernetes objects that were created by the script.

Generated YAML files with the default inputs
Click here to see sample content of the generated `domain.yaml`.

Verify the domain

To confirm that the domain was created, enter the following command:

$ kubectl describe domain DOMAINUID -n NAMESPACE

Replace DOMAINUID with the domainUID and NAMESPACE with the actual namespace.

Click here to see a sample domain description.

In the Status section of the output, the available servers and clusters are listed. Note that if this command is issued soon after the script finishes, there may be no servers available yet, or perhaps only the Administration Server but no Managed Servers. The WebLogic Kubernetes Operator will start up the Administration Server first and wait for it to become ready before starting the Managed Servers.

Verify the pods

Enter the following command to see the pods running the servers:

$ kubectl get pods -n NAMESPACE

Here is an example of the output of this command. You can verify that an Administration Server and Managed Servers for ucm and ibr cluster are running.

$ kubectl get pod -n wccns
NAME                                                READY   STATUS      RESTARTS   AGE
rcu                                                 1/1     Running     0          54d
wccinfra-adminserver                                1/1     Running     0          18d
wccinfra-create-fmw-infra-sample-domain-job-xqnn4   0/1     Completed   0          54d
wccinfra-ibr-server1                                1/1     Running     0          18d
wccinfra-ucm-server1                                1/1     Running     0          18d
wccinfra-ucm-server2                                1/1     Running     0          18d
wccinfra-ucm-server3                                1/1     Running     0          18d
wccinfra-ipm-server1                                1/1     Running     0          18d
wccinfra-ipm-server2                                1/1     Running     0          18d
wccinfra-ipm-server3                                1/1     Running     0          18d
wccinfra-capture-server1                            1/1     Running     0          18d
wccinfra-capture-server2                            1/1     Running     0          18d
wccinfra-capture-server3                            1/1     Running     0          18d
wccinfra-wccadf-server1                             1/1     Running     0          18d
wccinfra-wccadf-server2                             1/1     Running     0          18d
wccinfra-wccadf-server3                             1/1     Running     0          18d

Verify the services

Enter the following command to see the services for the domain:

$ kubectl get services -n NAMESPACE

Here is an example of the output of this command.

Click here to see a sample list of services.

Expose service for IBR intradoc port

  1. Get the IP address for the node, hosting ibr managed server pod. In this sample, node running wccinfra-ibr-server1 pod has ip ‘10.0.10.xx’

    $ kubectl get pods -n wccns -o wide
    
    #output
    NAME                                                READY   STATUS      RESTARTS   AGE     IP             NODE          NOMINATED NODE   READINESS GATES
    wccinfra-adminserver                                1/1     Running     0          4h50m   10.244.0.150   10.0.10.xxx   <none>           <none>
    wccinfra-create-fmw-infra-sample-domain-job-zbsxr   0/1     Completed   0          7d22h   10.244.1.25    10.0.10.xx    <none>           <none>
    wccinfra-ibr-server1                                1/1     Running     0          4h48m   10.244.1.38    10.0.10.xx   <none>           <none>
    wccinfra-ucm-server1                                1/1     Running     0          4h48m   10.244.1.39    10.0.10.xx    <none>           <none>
    wccinfra-ucm-server2                                1/1     Running     0          4h46m   10.244.0.151   10.0.10.xxx   <none>           <none>
    wccinfra-ucm-server3                                1/1     Running     0          4h44m   10.244.1.40    10.0.10.xx    <none>           <none>
    
  2. Expose the IBR intradoc port as a NodePort

    Note: Choose NodePort value from a range (default: 30000-32767). In this sample, we have chosen nodePort value as 30555

    $ cd ${WORKDIR}/create-wcc-domain/domain-home-on-pv/
       
    kubectl expose  service/wccinfra-cluster-ibr-cluster --name wccinfra-cluster-ibr-cluster-ext --port=5555 --type=NodePort -n wccns --dry-run=true -o yaml > wccinfra-cluster-ibr-cluster-ext.yaml
       
    sed -i -e '/targetPort:*/a\ \ \ \ nodePort: 30555' wccinfra-cluster-ibr-cluster-ext.yaml
       
    kubectl -n wccns apply -f wccinfra-cluster-ibr-cluster-ext.yaml   
    
  3. Verify ibr service name ‘wccinfra-cluster-ibr-cluster-ext’ 

    $ kubectl get svc -n wccns
    NAME                            TYPE      CLUSTER-IP    EXTERNAL-IP PORT(S)
    wccinfra-cluster-ibr-cluster-ext NodePort 10.109.247.52 <none>     5555:30555/TCP   
    
  4. Create the outgoing provider by providing following details and restart the servers.

    Please provide the NodePort value (in the above sample - 30555), as Server Port.

    Server Host Name:  <your-ibr-managed-server-node-ip>
    
    Server Port: 30555
    

    oke-wcc-provider-ucm-ibr

Expose service for UCM intradoc port

  1. Get the IP address for the node, hosting ucm managed server pod. In this sample, node running wccinfra-ucm-server1 pod has ip ‘10.0.10.xx’

    $ kubectl get pods -n wccns -o wide
    
    #output
    NAME                                                READY   STATUS      RESTARTS   AGE     IP             NODE          NOMINATED NODE   READINESS GATES
    wccinfra-adminserver                                1/1     Running     0          4h50m   10.244.0.150   10.0.10.xxx   <none>           <none>
    wccinfra-create-fmw-infra-sample-domain-job-zbsxr   0/1     Completed   0          7d22h   10.244.1.25    10.0.10.xx    <none>           <none>
    wccinfra-ibr-server1                                1/1     Running     0          4h48m   10.244.1.38    10.0.10.xx   <none>           <none>
    wccinfra-ucm-server1                                1/1     Running     0          4h48m   10.244.1.39    10.0.10.xx    <none>           <none>
    wccinfra-ucm-server2                                1/1     Running     0          4h46m   10.244.0.151   10.0.10.xxx   <none>           <none>
    wccinfra-ucm-server3                                1/1     Running     0          4h44m   10.244.1.40    10.0.10.xx    <none>           <none>
    
  2. Expose the UCM intradoc port as a NodePort

    Note: Choose NodePort value from a range (default: 30000-32767). In this sample, we have chosen nodePort value as 30444

    $ cd ${WORKDIR}/create-wcc-domain/domain-home-on-pv/
       
    $ kubectl expose  service/wccinfra-cluster-ucm-cluster --name wccinfra-cluster-ucm-cluster-ext --port=4444 --type=NodePort -n wccns --dry-run=true -o yaml > wccinfra-cluster-ucm-cluster-ext.yaml
       
    $ sed -i -e '/targetPort:*/a\ \ \ \ nodePort: 30444' wccinfra-cluster-ucm-cluster-ext.yaml
       
    $ kubectl -n wccns apply -f wccinfra-cluster-ucm-cluster-ext.yaml   
    
  3. Verify ucm service name ‘wccinfra-cluster-ucm-cluster-ext’ 

    $ kubectl get svc -n wccns
    NAME                            TYPE      CLUSTER-IP    EXTERNAL-IP PORT(S)
    wccinfra-cluster-ucm-cluster-ext NodePort 10.109.247.52 <none>     4444:30444/TCP