Skip to content

Commit 0ce5c29

Browse files
committed
merge 1427 into master
1 parent 83f81fa commit 0ce5c29

File tree

18 files changed

+443
-859
lines changed

18 files changed

+443
-859
lines changed

docs-source/content/samples/simple/domains/soa-domain/_index.md

Lines changed: 158 additions & 190 deletions
Large diffs are not rendered by default.

docs-source/content/userguide/managing-fmw-domains/soa-suite/_index.md

Lines changed: 143 additions & 155 deletions
Large diffs are not rendered by default.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Oracle SOA on Kubernetes
2+
3+
The WebLogic Kubernetes operator supports deployment of SOA Suite components such as Oracle Service-Oriented Architecture (SOA), Oracle Service Bus (OSB), and Oracle Enterprise Scheduler (ESS).
4+
5+
Oracle SOA Suite is currently supported for non-production use only in Docker and Kubernetes. The information provided
6+
in this document is a *preview* for early adopters who wish to experiment with Oracle SOA Suite in Kubernetes before
7+
it is supported for production use.
8+
9+
In this release, SOA Suite domains are supported using the “domain on a persistent volume”
10+
[model](https://oracle.github.io/weblogic-kubernetes-operator/userguide/managing-domains/choosing-a-model/) only, where the domain home is located in a persistent volume (PV).
11+
12+
The operator has several key features to assist you with deploying and managing SOA domains in a Kubernetes
13+
environment. You can:
14+
15+
* Create SOA instances in a Kubernetes persistent volume. This persistent volume can reside in an NFS file system or other Kubernetes volume types.
16+
* Start servers based on declarative startup parameters and desired states.
17+
* Expose the SOA Services and Composites for external access.
18+
* Scale SOA domains by starting and stopping Managed Servers on demand, or by integrating with a REST API to initiate scaling based on WLDF, Prometheus, Grafana, or other rules.
19+
* Publish operator and WebLogic Server logs into Elasticsearch and interact with them in Kibana.
20+
* Monitor the SOA instance using Prometheus and Grafana.
21+
22+
### Limitations
23+
24+
Refer to the [User guide](https://oracle.github.io/weblogic-kubernetes-operator/userguide/managing-fmw-domains/soa-suite/) for limitations in this release.
25+
26+
### Getting started
27+
28+
The fastest way to experience the operator is to follow the [User guide](https://oracle.github.io/weblogic-kubernetes-operator/userguide/managing-fmw-domains/soa-suite/)
29+
or try out the deployment [scripts](https://oracle.github.io/weblogic-kubernetes-operator/samples/simple/domains/soa-domain/).

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/common/create-domain-job.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
# Copyright (c) 2018, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2018, 2020, Oracle Corporation and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
44
#
55

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/common/createSOADomain.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
1+
# Copyright (c) 2018, 2020, Oracle Corporation and/or its affiliates.
22
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33

44
import os
@@ -317,6 +317,12 @@ def extendSoaDomain(self, domainHome, db, dbPrefix, dbPassword, exposeAdminT3Cha
317317
self.readAndApplyJRFTemplates(domainHome, db, dbPrefix, dbPassword, exposeAdminT3Channel, t3ChannelPublicAddress, t3ChannelPort)
318318
self.applySOATemplates()
319319
print 'Extension Templates added'
320+
321+
if 'soa_server1' not in self.MANAGED_SERVERS:
322+
print 'INFO: deleting soa_server1'
323+
cd('/')
324+
delete('soa_server1','Server')
325+
print 'INFO: deleted soa_server1'
320326

321327
self.configureJDBCTemplates(db,dbPrefix,dbPassword)
322328
self.configureXADataSources()
@@ -345,6 +351,12 @@ def extendSoaEssDomain(self, domainHome, db, dbPrefix, dbPassword, exposeAdminT3
345351
self.applySOAESSTemplates()
346352

347353
print 'Extension Templates added'
354+
355+
if 'soa_server1' not in self.MANAGED_SERVERS:
356+
print 'INFO: deleting soa_server1'
357+
cd('/')
358+
delete('soa_server1','Server')
359+
print 'INFO: deleted soa_server1'
348360

349361
print 'Deleting ess_server1'
350362
cd('/')
@@ -378,6 +390,12 @@ def extendOsbDomain(self, domainHome, db, dbPrefix, dbPassword, exposeAdminT3Cha
378390
self.applyOSBTemplates()
379391
print 'Extension Templates added'
380392

393+
if 'osb_server1' not in self.ADDL_MANAGED_SERVERS:
394+
print 'INFO: deleting osb_server1'
395+
cd('/')
396+
delete('osb_server1','Server')
397+
print 'INFO: deleted osb_server1'
398+
381399
self.configureJDBCTemplates(db,dbPrefix,dbPassword)
382400
cd('/JDBCSystemResources/SOADataSource/JdbcResource/SOADataSource')
383401
cd('JDBCDriverParams/NO_NAME_0')

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/common/utility.sh

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
# Copyright (c) 2018, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2018, 2020, Oracle Corporation and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
44

55
#
@@ -39,7 +39,32 @@ function checkDomainSecret {
3939
fi
4040
}
4141

42-
function prepareDomainHomeDir {
42+
#
43+
# traceDirs before|after
44+
# Trace contents and owner of DOMAIN_HOME/LOG_HOME/DATA_HOME directories
45+
#
46+
function traceDirs() {
47+
echo "id = '`id`'"
48+
local indir
49+
for indir in DOMAIN_HOME_DIR DOMAIN_ROOT_DIR DOMAIN_LOGS_DIR; do
50+
[ -z "${!indir}" ] && continue
51+
echo "Directory trace for $indir=${!indir} ($1)"
52+
local cnt=0
53+
local odir=""
54+
local cdir="${!indir}/*"
55+
while [ ${cnt} -lt 30 ] && [ ! "$cdir" = "$odir" ]; do
56+
echo " ls -ld $cdir:"
57+
ls -ld $cdir 2>&1 | sed 's/^/ /'
58+
odir="$cdir"
59+
cdir="`dirname "$cdir"`"
60+
cnt=$((cnt + 1))
61+
done
62+
done
63+
}
64+
65+
function prepareDomainHomeDir {
66+
traceDirs before
67+
4368
# Do not proceed if the domain already exists
4469
local domainFolder=${DOMAIN_HOME_DIR}
4570
if [ -d ${domainFolder} ]; then
@@ -51,5 +76,6 @@ function prepareDomainHomeDir {
5176
createFolder ${DOMAIN_LOGS_DIR}
5277
createFolder ${DOMAIN_ROOT_DIR}/applications
5378
createFolder ${DOMAIN_ROOT_DIR}/stores
54-
}
5579

80+
traceDirs after
81+
}

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/create-database/db-with-pv.yaml

Lines changed: 55 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,80 @@
1+
# Copyright (c) 2018, 2020, Oracle Corporation and/or its affiliates.
2+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
13
apiVersion: v1
24
kind: Service
35
metadata:
4-
name: soadb
5-
labels:
6-
app: soadb
7-
namespace: soans
6+
name: oracle-db
7+
namespace: default
88
spec:
99
ports:
10-
- port: 1521
11-
name: server-port
12-
- port: 5500
13-
name: em-port
14-
clusterIP: None
10+
- name: tns
11+
port: 1521
12+
protocol: TCP
13+
targetPort: 1521
14+
nodePort: 30022
1515
selector:
16-
app: soadb
16+
app.kubernetes.io/instance: dev
17+
app.kubernetes.io/name: oracle-db
18+
sessionAffinity: None
19+
type: LoadBalancer
1720
---
18-
apiVersion: apps/v1beta1
19-
kind: StatefulSet
21+
apiVersion: extensions/v1beta1
22+
kind: Deployment
2023
metadata:
21-
name: soadb
22-
namespace: soans
24+
name: oracle-db
25+
namespace: default
2326
spec:
24-
serviceName: "soadb"
2527
replicas: 1
28+
selector:
29+
matchLabels:
30+
app.kubernetes.io/instance: dev
31+
app.kubernetes.io/name: oracle-db
32+
strategy:
33+
rollingUpdate:
34+
maxSurge: 1
35+
maxUnavailable: 1
36+
type: RollingUpdate
2637
template:
2738
metadata:
2839
labels:
29-
app: soadb
40+
app.kubernetes.io/instance: dev
41+
app.kubernetes.io/name: oracle-db
3042
spec:
31-
terminationGracePeriodSeconds: 30
3243
containers:
33-
- name: soadb
34-
image: oracle/database:12.2.0.1
35-
imagePullPolicy: IfNotPresent
36-
ports:
37-
- containerPort: 1521
38-
name: server-port
39-
- containerPort: 5500
40-
name: em-port
41-
env:
44+
- env:
4245
- name: DB_SID
43-
value: soadb
46+
value: devcdb
4447
- name: DB_PDB
45-
value: soapdb
48+
value: devpdb
4649
- name: DB_DOMAIN
47-
value: my.domain.com
50+
value: k8s
4851
- name: DB_BUNDLE
49-
value: basic
50-
readinessProbe:
51-
exec:
52-
command:
53-
- grep
54-
- "Done ! The database is ready for use ."
55-
- "/home/oracle/setup/log/setupDB.log"
56-
initialDelaySeconds: 300
57-
periodSeconds: 5
52+
value: basic
53+
image: container-registry.oracle.com/database/enterprise:12.2.0.1-slim
54+
imagePullPolicy: IfNotPresent
55+
name: oracle-db
56+
ports:
57+
- containerPort: 1521
58+
name: tns
59+
protocol: TCP
60+
resources:
61+
limits:
62+
cpu: "2"
63+
memory: "6Gi"
64+
requests:
65+
cpu: 500m
66+
terminationMessagePath: /dev/termination-log
67+
terminationMessagePolicy: File
5868
volumeMounts:
5969
- mountPath: /ORCL
6070
name: soadb-storage
71+
dnsPolicy: ClusterFirst
72+
restartPolicy: Always
73+
schedulerName: default-scheduler
74+
securityContext: {}
75+
terminationGracePeriodSeconds: 30
76+
imagePullSecrets:
77+
- name: docker-store
6178
volumes:
6279
- name: soadb-storage
6380
persistentVolumeClaim:

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/create-database/db-without-pv.yaml

Lines changed: 0 additions & 57 deletions
This file was deleted.

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/create-domain-inputs.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
1+
# Copyright (c) 2018, 2020, Oracle Corporation and/or its affiliates.
22
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33

44
# The version of this inputs file. Do not modify.
@@ -108,7 +108,7 @@ javaOptions: -Dweblogic.StdoutDebugEnabled=false
108108
persistentVolumeClaimName: soainfra-domain-pvc
109109

110110
# Mount path of the domain persistent volume.
111-
domainPVMountPath: /u01/oracle/user_projects/domains
111+
domainPVMountPath: /u01/oracle/user_projects
112112

113113
# Mount path where the create domain scripts are located inside a pod
114114
#
@@ -166,7 +166,7 @@ createDomainFilesDir: wlst
166166
rcuSchemaPrefix: SOA1
167167

168168
# The database URL
169-
rcuDatabaseURL: soadb.soans:1521/soapdb.my.domain.com
169+
rcuDatabaseURL: oracle-db.default.svc.cluster.local:1521/devpdb.k8s
170170

171171
# The kubernetes secret containing the database credentials
172172
rcuCredentialsSecret: soainfra-rcu-credentials

kubernetes/samples/scripts/create-soa-domain/domain-home-on-pv/create-domain-job-template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
1+
# Copyright (c) 2018, 2020, Oracle Corporation and/or its affiliates.
22
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33
apiVersion: batch/v1
44
kind: Job

0 commit comments

Comments
 (0)