Skip to content

Commit e6c5c9e

Browse files
committed
Remove the domain pv, pvc & storage class inputs and switch to hard coded vals based on the domain uid, get rid of the default domain uid, weblogic domain storage path and weblogic domain nfs server
1 parent 1cbd24a commit e6c5c9e

13 files changed

+74
-176
lines changed

kubernetes/create-weblogic-domain-inputs.yaml

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ adminServerName: admin-server
1111
domainName: base_domain
1212

1313
# Unique id identifying a domain.
14-
# This id must be lowercase and unique across all domains in a Kubernetes cluster
15-
domainUID: domain1
14+
# This id must be lowercase and unique across all domains in a Kubernetes cluster.
15+
# Best practice is to use a globally unique name.
16+
# The following line must be uncomment and customized:
17+
#domainUID: domain1.development-stage.yourcompany.com
1618

1719
# Determines which WebLogic Servers the Operator will start up
1820
# Legal values are "NONE", "ALL", "ADMIN", "SPECIFIED", or "AUTO"
@@ -38,32 +40,17 @@ managedServerPort: 8001
3840
# If using 'NFS', weblogicDomainStorageNFSServer must be specified.
3941
weblogicDomainStorageType: HOST_PATH
4042

41-
# The server name or ip address of the NFS server to use
42-
# for the domain's storage.
43-
# Only used if persistenceType is nfs.
44-
weblogicDomainStorageNFSServer: nfsServer
43+
# The server name or ip address of the NFS server to use for the domain's storage.
44+
# The following line must be uncomment and customized if weblogicDomainStorateType is NFS:
45+
#weblogicDomainStorageNFSServer: nfsServer
4546

4647
# Physical path of the domain's persistent storage.
47-
weblogicDomainStoragePath: /scratch/k8s_dir/persistentVolume001
48+
# The following line must be uncomment and customized:
49+
#weblogicDomainStoragePath: /scratch/k8s_dir/domain1
4850

4951
# Total storage allocated to the domain's persistent storage.
5052
weblogicDomainStorageSize: 10Gi
5153

52-
# Name of the storage class to set for the persistent volume and persistent volume claim
53-
# The default value that will be used is the value of the domainUid input parameter
54-
# The name of the storage class must be in lowercase
55-
#persistenceStorageClass:
56-
57-
# Name of the Kubernetes persistent volume claim for this domain. Name must be lowercase.
58-
# The persistent volume claim name will be prepended with '${domainUid}-' by create-domain-job.sh
59-
# if it is not already
60-
persistenceVolumeClaimName: pv001-claim
61-
62-
# Name of the Kubernetes persistent volume for this domain. Name must be lowercase.
63-
# The persistent volume name will be prepended with '${domainUid}-' by create-domain-job.sh
64-
# if it is not already
65-
persistenceVolumeName: pv001
66-
6754
# Boolean indicating if production mode is enabled for the domain
6855
productionModeEnabled: true
6956

kubernetes/internal/create-weblogic-domain-job-template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ spec:
491491
name: domain-%DOMAIN_UID%-scripts
492492
- name: pv-storage
493493
persistentVolumeClaim:
494-
claimName: %PERSISTENT_VOLUME_CLAIM%
494+
claimName: %DOMAIN_UID%-weblogic-domain-pvc
495495
- name: secrets
496496
secret:
497497
secretName: %WEBLOGIC_CREDENTIALS_SECRET_NAME%

kubernetes/internal/create-weblogic-domain.sh

Lines changed: 10 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -124,49 +124,6 @@ function validateClusterName {
124124
clusterNameLC=$(toLower $clusterName)
125125
}
126126

127-
#
128-
# Function to default the value of persistenceStorageClass.
129-
# When the parameter is not specified in the input file, it will default to use the value domainUID
130-
#
131-
function validateStorageClass {
132-
if [ -z "${persistenceStorageClass}" ]; then
133-
persistenceStorageClass=${domainUID}
134-
echo Defaulting the input parameter persistenceStorageClass to be $domainUID
135-
else
136-
validateLowerCase "persistenceStorageClass" ${persistenceStorageClass}
137-
fi
138-
}
139-
140-
#
141-
# Function to validate the persistent volume claim name
142-
#
143-
function validatePersistentVolumeClaimName {
144-
validateInputParamsSpecified persistenceVolumeClaimName
145-
if [ ! -z "${persistenceVolumeClaimName}" ]; then
146-
validateLowerCase "persistenceVolumeClaimName" ${persistenceVolumeClaimName}
147-
if [[ "${persistenceVolumeClaimName}" != ${domainUID}-* ]] ; then
148-
echo persistenceVolumeClaimName specified does not starts with \'${domainUID}-\', appending it
149-
persistenceVolumeClaimName=${domainUID}-${persistenceVolumeClaimName}
150-
echo persistenceVolumeClaimName is now ${persistenceVolumeClaimName}
151-
fi
152-
fi
153-
}
154-
155-
#
156-
# Function to validate the persistent volume name
157-
#
158-
function validatePersistentVolumeName {
159-
validateInputParamsSpecified persistenceVolumeName
160-
if [ ! -z "${persistenceVolumeName}" ]; then
161-
validateLowerCase "persistenceVolumeName" ${persistenceVolumeName}
162-
if [[ "${persistenceVolumeName}" != ${domainUID}-* ]] ; then
163-
echo persistenceVolumeName specified does not starts with \'${domainUID}-\', appending it
164-
persistenceVolumeName=${domainUID}-${persistenceVolumeName}
165-
echo persistenceVolumeName is now ${persistenceVolumeName}
166-
fi
167-
fi
168-
}
169-
170127
#
171128
# Function to validate the weblogic domain storage type
172129
#
@@ -352,8 +309,6 @@ function initialize {
352309
managedServerNameBase \
353310
weblogicDomainStoragePath \
354311
weblogicDomainStorageSize \
355-
persistenceVolumeName \
356-
persistenceVolumeClaimName \
357312
weblogicCredentialsSecretName \
358313
namespace \
359314
javaOptions \
@@ -377,10 +332,7 @@ function initialize {
377332
validateDomainUid
378333
validateNamespace
379334
validateClusterName
380-
validateStorageClass
381335
validateWeblogicDomainStorageType
382-
validatePersistentVolumeName
383-
validatePersistentVolumeClaimName
384336
validateWeblogicCredentialsSecretName
385337
validateWeblogicImagePullSecretName
386338
validateLoadBalancer
@@ -426,10 +378,8 @@ function createYamlFiles {
426378

427379
sed -i -e "s:%DOMAIN_UID%:${domainUID}:g" ${domainPVOutput}
428380
sed -i -e "s:%NAMESPACE%:$namespace:g" ${domainPVOutput}
429-
sed -i -e "s:%PERSISTENT_VOLUME%:${persistenceVolumeName}:g" ${domainPVOutput}
430381
sed -i -e "s:%WEBLOGIC_DOMAIN_STORAGE_PATH%:${weblogicDomainStoragePath}:g" ${domainPVOutput}
431382
sed -i -e "s:%WEBLOGIC_DOMAIN_STORAGE_SIZE%:${weblogicDomainStorageSize}:g" ${domainPVOutput}
432-
sed -i -e "s:%STORAGE_CLASS_NAME%:${persistenceStorageClass}:g" ${domainPVOutput}
433383
sed -i -e "s:%HOST_PATH_PREFIX%:${hostPathPrefix}:g" ${domainPVOutput}
434384
sed -i -e "s:%NFS_PREFIX%:${nfsPrefix}:g" ${domainPVOutput}
435385

@@ -439,8 +389,6 @@ function createYamlFiles {
439389
cp ${domainPVCInput} ${domainPVCOutput}
440390
sed -i -e "s:%NAMESPACE%:$namespace:g" ${domainPVCOutput}
441391
sed -i -e "s:%DOMAIN_UID%:${domainUID}:g" ${domainPVCOutput}
442-
sed -i -e "s:%PERSISTENT_VOLUME_CLAIM%:${persistenceVolumeClaimName}:g" ${domainPVCOutput}
443-
sed -i -e "s:%STORAGE_CLASS_NAME%:${persistenceStorageClass}:g" ${domainPVCOutput}
444392
sed -i -e "s:%WEBLOGIC_DOMAIN_STORAGE_SIZE%:${weblogicDomainStorageSize}:g" ${domainPVCOutput}
445393

446394
# Generate the yaml to create the kubernetes job that will create the weblogic domain
@@ -451,7 +399,6 @@ function createYamlFiles {
451399
sed -i -e "s:%WEBLOGIC_CREDENTIALS_SECRET_NAME%:${weblogicCredentialsSecretName}:g" ${jobOutput}
452400
sed -i -e "s:%WEBLOGIC_IMAGE_PULL_SECRET_NAME%:${weblogicImagePullSecretName}:g" ${jobOutput}
453401
sed -i -e "s:%WEBLOGIC_IMAGE_PULL_SECRET_PREFIX%:${weblogicImagePullSecretPrefix}:g" ${jobOutput}
454-
sed -i -e "s:%PERSISTENT_VOLUME_CLAIM%:${persistenceVolumeClaimName}:g" ${jobOutput}
455402
sed -i -e "s:%DOMAIN_UID%:${domainUID}:g" ${jobOutput}
456403
sed -i -e "s:%DOMAIN_NAME%:${domainName}:g" ${jobOutput}
457404
sed -i -e "s:%PRODUCTION_MODE_ENABLED%:${productionModeEnabled}:g" ${jobOutput}
@@ -519,26 +466,29 @@ function createYamlFiles {
519466
# Function to create the domain's persistent volume
520467
#
521468
function createDomainPV {
522-
523469
# Check if the persistent volume is already available
524-
checkPvExists ${persistenceVolumeName}
470+
persistentVolumeName="${domainUID}-weblogic-domain-pv"
471+
checkPvExists ${persistentVolumeName}
525472
if [ "${PV_EXISTS}" = "false" ]; then
526-
echo Creating the persistent volume ${persistenceVolumeName}
473+
echo Creating the persistent volume ${persistentVolumeName}
527474
kubectl create -f ${domainPVOutput}
528-
checkPvState ${persistenceVolumeName} Available
475+
checkPvState ${persistentVolumeName} Available
529476
fi
530477
}
531478

532479
#
533480
# Function to create the domain's persistent volume claim
481+
# Must be called after createDomainPV since it relies on
482+
# createDomainPV defining persistentVolumeName
534483
#
535484
function createDomainPVC {
536485
# Check if the persistent volume claim is already available
537-
checkPvcExists ${persistenceVolumeClaimName} ${namespace}
486+
persistentVolumeClaimName="${domainUID}-weblogic-domain-pvc"
487+
checkPvcExists ${persistentVolumeClaimName} ${namespace}
538488
if [ "${PVC_EXISTS}" = "false" ]; then
539-
echo Creating the persistent volume claim ${persistenceVolumeClaimName}
489+
echo Creating the persistent volume claim ${persistentVolumeClaimName}
540490
kubectl create -f ${domainPVCOutput}
541-
checkPvState ${persistenceVolumeName} Bound
491+
checkPvState ${persistentVolumeName} Bound
542492
fi
543493
}
544494

kubernetes/internal/weblogic-domain-persistent-volume-claim-template.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
kind: PersistentVolumeClaim
55
apiVersion: v1
66
metadata:
7-
name: %PERSISTENT_VOLUME_CLAIM%
7+
name: %DOMAIN_UID%-weblogic-domain-pvc
88
namespace: %NAMESPACE%
99
labels:
1010
weblogic.domainUID: %DOMAIN_UID%
1111
spec:
12-
storageClassName: %STORAGE_CLASS_NAME%
12+
storageClassName: %DOMAIN_UID%-weblogic-domain-storage-class
1313
accessModes:
1414
- ReadWriteMany
1515
resources:

kubernetes/internal/weblogic-domain-persistent-volume-template.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
apiVersion: v1
55
kind: PersistentVolume
66
metadata:
7-
name: %PERSISTENT_VOLUME%
7+
name: %DOMAIN_UID%-weblogic-domain-pv
88
labels:
99
weblogic.domainUID: %DOMAIN_UID%
1010
spec:
11-
storageClassName: %STORAGE_CLASS_NAME%
11+
storageClassName: %DOMAIN_UID%-weblogic-domain-storage-class
1212
capacity:
1313
storage: %WEBLOGIC_DOMAIN_STORAGE_SIZE%
1414
accessModes:

src/integration-tests/bash/cleanup.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ function orderlyDelete {
196196
kubectl -n $curns delete job domain-${curdomain}-job --ignore-not-found
197197

198198
echo @@ Deleting domain pv and pvc for domain ${curdomain} in namespace $curns
199-
kubectl delete pv ${curdomain}-pv --ignore-not-found
200-
kubectl -n $curns delete pvc ${curdomain}-pv-claim --ignore-not-found
199+
kubectl delete pv ${curdomain}-weblogic-domain-pv --ignore-not-found
200+
kubectl -n $curns delete pvc ${curdomain}-weblogic-domain-pvc --ignore-not-found
201201

202202
echo @@ Deleting ${curdomain}-weblogic-credentials secret in namespace $curns
203203
kubectl -n $curns delete secret ${curdomain}-weblogic-credentials --ignore-not-found

src/integration-tests/bash/run.sh

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
#
137137
# Local tmp files: RESULT_ROOT/acceptance_test_tmp/...
138138
#
139-
# PV dirs K8S NFS: PV_ROOT/acceptance_test_pv/persistentVolume-${domain_uid}/...
139+
# PV dirs K8S NFS: PV_ROOT/acceptance_test_pv/domain-${domain_uid}-storage/...
140140
#
141141
# Archives of above: PV_ROOT/acceptance_test_pv_archive/...
142142
# RESULT_ROOT/acceptance_test_tmp_archive/...
@@ -705,8 +705,7 @@ function run_create_domain_job {
705705

706706
trace "WLS_JAVA_OPTIONS = \"$WLS_JAVA_OPTIONS\""
707707

708-
local PV="pv"
709-
local PV_DIR="persistentVolume-${DOMAIN_UID}"
708+
local DOMAIN_STORAGE_DIR="domain-${DOMAIN_UID}-storage"
710709

711710
trace "Create $DOMAIN_UID in $NAMESPACE namespace "
712711

@@ -745,10 +744,8 @@ function run_create_domain_job {
745744
sed -i -e "s/^exposeAdminT3Channel:.*/exposeAdminT3Channel: true/" $inputs
746745

747746
# Customize more configuration
748-
sed -i -e "s/^persistenceVolumeName:.*/persistenceVolumeName: ${PV}/" $inputs
749-
sed -i -e "s/^persistenceVolumeClaimName:.*/persistenceVolumeClaimName: $PV-claim/" $inputs
750-
sed -i -e "s;^persistencePath:.*;persistencePath: $PV_ROOT/acceptance_test_pv/$PV_DIR;" $inputs
751-
sed -i -e "s/^domainUID:.*/domainUID: $DOMAIN_UID/" $inputs
747+
sed -i -e "s;^#weblogicDomainStoragePath:.*;weblogicDomainStoragePath: $PV_ROOT/acceptance_test_pv/$DOMAIN_STORAGE_DIR;" $inputs
748+
sed -i -e "s/^#domainUID:.*/domainUID: $DOMAIN_UID/" $inputs
752749
sed -i -e "s/^clusterName:.*/clusterName: $WL_CLUSTER_NAME/" $inputs
753750
sed -i -e "s/^namespace:.*/namespace: $NAMESPACE/" $inputs
754751
sed -i -e "s/^t3ChannelPort:.*/t3ChannelPort: $ADMIN_WLST_PORT/" $inputs
@@ -762,7 +759,7 @@ function run_create_domain_job {
762759
sed -i -e "s|#weblogicImagePullSecretName:.*|weblogicImagePullSecretName: ${WEBLOGIC_IMAGE_PULL_SECRET_NAME}|g" $inputs
763760
fi
764761
sed -i -e "s/^loadBalancerWebPort:.*/loadBalancerWebPort: $LOAD_BALANCER_WEB_PORT/" $inputs
765-
sed -i -e "s/^loadBalancerDashboardPort:.*/loadBalancerAdminPort: $LOAD_BALANCER_DASHBOARD_PORT/" $inputs
762+
sed -i -e "s/^loadBalancerDashboardPort:.*/loadBalancerDashboardPort: $LOAD_BALANCER_DASHBOARD_PORT/" $inputs
766763
sed -i -e "s/^javaOptions:.*/javaOptions: $WLS_JAVA_OPTIONS/" $inputs
767764
sed -i -e "s/^startupControl:.*/startupControl: $STARTUP_CONTROL/" $inputs
768765

@@ -772,11 +769,11 @@ function run_create_domain_job {
772769
fi
773770

774771
local outfile="${tmp_dir}/mkdir_physical_nfs.out"
775-
trace "Use a job to create the k8s host directory \"$PV_ROOT/acceptance_test_pv/$PV_DIR\" that we will use for the domain's persistent volume, see \"$outfile\" for job tracing."
772+
trace "Use a job to create the k8s host directory \"$PV_ROOT/acceptance_test_pv/$DOMAIN_STORAGE_DIR\" that we will use for the domain's persistent volume, see \"$outfile\" for job tracing."
776773

777774
# Note that the job.sh job mounts PV_ROOT to /scratch and runs as UID 1000,
778775
# so PV_ROOT must already exist and have 777 or UID=1000 permissions.
779-
$SCRIPTPATH/job.sh "mkdir -p /scratch/acceptance_test_pv/$PV_DIR" > ${outfile} 2>&1
776+
$SCRIPTPATH/job.sh "mkdir -p /scratch/acceptance_test_pv/$DOMAIN_STORAGE_DIR" > ${outfile} 2>&1
780777
if [ "$?" = "0" ]; then
781778
cat ${outfile} | sed 's/^/+/g'
782779
trace Job complete. Directory created on k8s cluster.

src/test/java/oracle/kubernetes/operator/create/CreateDomainGeneratedFilesBaseTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ protected V1Job getExpectedCreateWeblogicDomainJob() {
182182
.addVolumesItem(newVolume()
183183
.name("pv-storage")
184184
.persistentVolumeClaim(newPersistentVolumeClaimVolumeSource()
185-
.claimName(getInputs().getDomainUID() + "-" + getInputs().getPersistenceVolumeClaimName())))
185+
.claimName(getInputs().getWeblogicDomainPersistentVolumeClaimName())))
186186
.addVolumesItem(newVolume()
187187
.name("secrets")
188188
.secret(newSecretVolumeSource()
@@ -652,10 +652,10 @@ protected V1PersistentVolume getExpectedWeblogicDomainPersistentVolume() {
652652
return
653653
newPersistentVolume()
654654
.metadata(newObjectMeta()
655-
.name(getInputs().getDomainUID() + "-" + getInputs().getPersistenceVolumeName())
655+
.name(getInputs().getWeblogicDomainPersistentVolumeName())
656656
.putLabelsItem("weblogic.domainUID", getInputs().getDomainUID()))
657657
.spec(newPersistentVolumeSpec()
658-
.storageClassName(getInputs().getDomainUID())
658+
.storageClassName(getInputs().getWeblogicDomainStorageClass())
659659
.putCapacityItem("storage", getInputs().getWeblogicDomainStorageSize())
660660
.addAccessModesItem("ReadWriteMany")
661661
.persistentVolumeReclaimPolicy("Retain"));
@@ -676,11 +676,11 @@ protected V1PersistentVolumeClaim getExpectedWeblogicDomainPersistentVolumeClaim
676676
return
677677
newPersistentVolumeClaim()
678678
.metadata(newObjectMeta()
679-
.name(getInputs().getDomainUID() + "-" + getInputs().getPersistenceVolumeClaimName())
679+
.name(getInputs().getWeblogicDomainPersistentVolumeClaimName())
680680
.namespace(getInputs().getNamespace())
681681
.putLabelsItem("weblogic.domainUID", getInputs().getDomainUID()))
682682
.spec(newPersistentVolumeClaimSpec()
683-
.storageClassName(getInputs().getDomainUID())
683+
.storageClassName(getInputs().getWeblogicDomainStorageClass())
684684
.addAccessModesItem("ReadWriteMany")
685685
.resources(newResourceRequirements()
686686
.putRequestsItem("storage", getInputs().getWeblogicDomainStorageSize())));

src/test/java/oracle/kubernetes/operator/create/CreateDomainInputs.java

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ public class CreateDomainInputs {
5151
private String weblogicDomainStoragePath = "";
5252
private String weblogicDomainStorageSize = "";
5353
private String weblogicDomainStorageType = "";
54-
private String persistenceVolumeClaimName = "";
55-
private String persistenceVolumeName = "";
5654
private String productionModeEnabled = "";
5755
private String weblogicCredentialsSecretName = "";
5856
private String weblogicImagePullSecretName = "";
@@ -87,8 +85,6 @@ public static CreateDomainInputs newInputs() throws Exception {
8785
.namespace("test-domain-namespace")
8886
.weblogicDomainStoragePath("TestDomainStoragePath")
8987
.weblogicDomainStorageSize("20Gi")
90-
.persistenceVolumeClaimName("test-domain-pvc")
91-
.persistenceVolumeName("test-domain-pv")
9288
.productionModeEnabled("false")
9389
.weblogicCredentialsSecretName("test-weblogic-credentials")
9490
.startupControl(STARTUP_CONTROL_ALL)
@@ -109,6 +105,18 @@ private static Path defaultInputsPath() {
109105
return FileSystems.getDefault().getPath(DEFAULT_INPUTS);
110106
}
111107

108+
public String getWeblogicDomainStorageClass() {
109+
return getDomainUID() + "-weblogic-domain-storage-class";
110+
}
111+
112+
public String getWeblogicDomainPersistentVolumeName() {
113+
return getDomainUID() + "-weblogic-domain-pv";
114+
}
115+
116+
public String getWeblogicDomainPersistentVolumeClaimName() {
117+
return getDomainUID() + "-weblogic-domain-pvc";
118+
}
119+
112120
public String getAdminPort() {
113121
return adminPort;
114122
}
@@ -291,32 +299,6 @@ public CreateDomainInputs weblogicDomainStorageType(String weblogicDomainStorage
291299
return this;
292300
}
293301

294-
public String getPersistenceVolumeClaimName() {
295-
return persistenceVolumeClaimName;
296-
}
297-
298-
public void setPersistenceVolumeClaimName(String persistenceVolumeClaimName) {
299-
this.persistenceVolumeClaimName = convertNullToEmptyString(persistenceVolumeClaimName);
300-
}
301-
302-
public CreateDomainInputs persistenceVolumeClaimName(String persistenceVolumeClaimName) {
303-
setPersistenceVolumeClaimName(persistenceVolumeClaimName);
304-
return this;
305-
}
306-
307-
public String getPersistenceVolumeName() {
308-
return persistenceVolumeName;
309-
}
310-
311-
public void setPersistenceVolumeName(String persistenceVolumeName) {
312-
this.persistenceVolumeName = convertNullToEmptyString(persistenceVolumeName);
313-
}
314-
315-
public CreateDomainInputs persistenceVolumeName(String persistenceVolumeName) {
316-
setPersistenceVolumeName(persistenceVolumeName);
317-
return this;
318-
}
319-
320302
public String getProductionModeEnabled() {
321303
return productionModeEnabled;
322304
}

0 commit comments

Comments
 (0)