2929import io .kubernetes .client .openapi .models .V1HostPathVolumeSource ;
3030import io .kubernetes .client .openapi .models .V1LabelSelector ;
3131import io .kubernetes .client .openapi .models .V1LocalObjectReference ;
32+ import io .kubernetes .client .openapi .models .V1NFSVolumeSource ;
3233import io .kubernetes .client .openapi .models .V1ObjectFieldSelector ;
3334import io .kubernetes .client .openapi .models .V1ObjectMeta ;
3435import io .kubernetes .client .openapi .models .V1PersistentVolume ;
5556import io .kubernetes .client .openapi .models .V1Subject ;
5657import io .kubernetes .client .openapi .models .V1Volume ;
5758import io .kubernetes .client .openapi .models .V1VolumeMount ;
59+ import io .kubernetes .client .util .Yaml ;
5860import oracle .weblogic .kubernetes .TestConstants ;
5961import oracle .weblogic .kubernetes .actions .TestActions ;
6062import oracle .weblogic .kubernetes .actions .impl .primitive .Command ;
7678import static oracle .weblogic .kubernetes .TestConstants .DB_PREBUILT_IMAGE_NAME ;
7779import static oracle .weblogic .kubernetes .TestConstants .IMAGE_PULL_POLICY ;
7880import static oracle .weblogic .kubernetes .TestConstants .KUBERNETES_CLI ;
81+ import static oracle .weblogic .kubernetes .TestConstants .NFS_SERVER ;
7982import static oracle .weblogic .kubernetes .TestConstants .OKD ;
8083import static oracle .weblogic .kubernetes .TestConstants .OKE_CLUSTER ;
8184import static oracle .weblogic .kubernetes .TestConstants .ORACLE_DB_SECRET_NAME ;
104107import static oracle .weblogic .kubernetes .utils .FileUtils .replaceStringInFile ;
105108import static oracle .weblogic .kubernetes .utils .ImageUtils .createBaseRepoSecret ;
106109import static oracle .weblogic .kubernetes .utils .ImageUtils .createTestRepoSecret ;
107- import static oracle .weblogic .kubernetes .utils .PersistentVolumeUtils .setVolumeSource ;
108110import static oracle .weblogic .kubernetes .utils .PodUtils .checkPodDoesNotExist ;
109111import static oracle .weblogic .kubernetes .utils .ThreadSafeLogger .getLogger ;
110112import static org .apache .commons .io .FileUtils .deleteDirectory ;
@@ -858,9 +860,6 @@ public static String createOracleDBUsingOperator(String dbName, String sysPasswo
858860 replaceStringInFile (dbYaml .toString (), "pullFrom:" , "pullFrom: " + DB_IMAGE_19C );
859861 replaceStringInFile (dbYaml .toString (), "pullSecrets:" , "pullSecrets: " + BASE_IMAGES_REPO_SECRET_NAME );
860862 String storageClass = "weblogic-domain-storage-class" ;
861- if (OKE_CLUSTER ) {
862- storageClass = "oci-fss" ;
863- }
864863 replaceStringInFile (dbYaml .toString (), "storageClass: \" oci-bv\" " ,
865864 "storageClass: \" " + storageClass + "\" " );
866865 replaceStringInFile (dbYaml .toString (), "accessMode: \" ReadWriteOnce\" " , "accessMode: \" ReadWriteMany\" " );
@@ -1015,16 +1014,15 @@ public static void deleteOracleDB(String namespace, String dbName) {
10151014 public static void createPV (String pvName ) {
10161015
10171016 LoggingFacade logger = getLogger ();
1018- Path pvHostPath = null ;
1017+ Path pvHostPath = Paths . get ( PV_ROOT , pvName ) ;
10191018
10201019 logger .info ("creating persistent volume {0}" , pvName );
1021-
1020+
10221021 // when tests are running in local box the PV directories need to exist
10231022 if (!OKE_CLUSTER && !OKD ) {
10241023 try {
1025- pvHostPath = Files .createDirectories (Paths .get (
1026- PV_ROOT , pvName ));
10271024 logger .info ("Creating PV directory host path {0}" , pvHostPath );
1025+ Files .createDirectories (pvHostPath );
10281026 deleteDirectory (pvHostPath .toFile ());
10291027 createDirectories (pvHostPath );
10301028 } catch (IOException ioex ) {
@@ -1034,15 +1032,29 @@ public static void createPV(String pvName) {
10341032 }
10351033
10361034 V1PersistentVolume v1pv = new V1PersistentVolume ()
1035+ .metadata (new V1ObjectMeta ()
1036+ .name (pvName ))
10371037 .spec (new V1PersistentVolumeSpec ()
10381038 .addAccessModesItem ("ReadWriteMany" )
10391039 .volumeMode ("Filesystem" )
10401040 .putCapacityItem ("storage" , Quantity .fromString ("100Gi" ))
10411041 .persistentVolumeReclaimPolicy ("Recycle" )
1042- .accessModes (Arrays .asList ("ReadWriteMany" )))
1043- .metadata (new V1ObjectMeta ()
1044- .name (pvName ));
1045- setVolumeSource (pvHostPath , v1pv );
1042+ .accessModes (Arrays .asList ("ReadWriteMany" )));
1043+ if (OKD ) {
1044+ v1pv .getSpec ()
1045+ .storageClassName ("okd-nfsmnt" )
1046+ .nfs (new V1NFSVolumeSource ()
1047+ .path (PV_ROOT )
1048+ .server (NFS_SERVER )
1049+ .readOnly (false ));
1050+ } else {
1051+ v1pv .getSpec ()
1052+ .storageClassName ("weblogic-domain-storage-class" )
1053+ .hostPath (new V1HostPathVolumeSource ()
1054+ .path (pvHostPath .toString ()));
1055+ }
1056+ logger .info (Yaml .dump (v1pv ));
1057+
10461058 boolean success = assertDoesNotThrow (() -> createPersistentVolume (v1pv ),
10471059 "Failed to create persistent volume" );
10481060 assertTrue (success , "PersistentVolume creation failed" );
0 commit comments