1- // Copyright (c) 2020, 2023 , Oracle and/or its affiliates.
1+ // Copyright (c) 2020, 2024 , Oracle and/or its affiliates.
22// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
33
44package oracle .weblogic .kubernetes ;
55
6+ import java .net .InetAddress ;
67import java .nio .file .Files ;
78import java .nio .file .Path ;
89import java .nio .file .Paths ;
4950import static oracle .weblogic .kubernetes .TestConstants .DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX ;
5051import static oracle .weblogic .kubernetes .TestConstants .DOMAIN_API_VERSION ;
5152import static oracle .weblogic .kubernetes .TestConstants .DOMAIN_STATUS_CONDITION_COMPLETED_TYPE ;
53+ import static oracle .weblogic .kubernetes .TestConstants .DOMAIN_VERSION ;
5254import static oracle .weblogic .kubernetes .TestConstants .ENCRYPION_PASSWORD_DEFAULT ;
5355import static oracle .weblogic .kubernetes .TestConstants .ENCRYPION_USERNAME_DEFAULT ;
5456import static oracle .weblogic .kubernetes .TestConstants .K8S_NODEPORT_HOST ;
57+ import static oracle .weblogic .kubernetes .TestConstants .KIND_CLUSTER ;
5558import static oracle .weblogic .kubernetes .TestConstants .KUBERNETES_CLI ;
5659import static oracle .weblogic .kubernetes .TestConstants .MII_AUXILIARY_IMAGE_NAME ;
5760import static oracle .weblogic .kubernetes .TestConstants .MII_BASIC_APP_NAME ;
6366import static oracle .weblogic .kubernetes .TestConstants .SKIP_CLEANUP ;
6467import static oracle .weblogic .kubernetes .TestConstants .SSL_PROPERTIES ;
6568import static oracle .weblogic .kubernetes .TestConstants .TEST_IMAGES_REPO_SECRET_NAME ;
69+ import static oracle .weblogic .kubernetes .TestConstants .TRAEFIK_INGRESS_HTTP_HOSTPORT ;
6670import static oracle .weblogic .kubernetes .TestConstants .WDT_BASIC_IMAGE_NAME ;
6771import static oracle .weblogic .kubernetes .TestConstants .WDT_BASIC_IMAGE_TAG ;
6872import static oracle .weblogic .kubernetes .TestConstants .WEBLOGIC_IMAGE_TO_USE_IN_SPEC ;
73+ import static oracle .weblogic .kubernetes .TestConstants .WLSIMG_BUILDER ;
74+ import static oracle .weblogic .kubernetes .TestConstants .WLSIMG_BUILDER_DEFAULT ;
6975import static oracle .weblogic .kubernetes .actions .ActionConstants .ARCHIVE_DIR ;
7076import static oracle .weblogic .kubernetes .actions .ActionConstants .MODEL_DIR ;
7177import static oracle .weblogic .kubernetes .actions .ActionConstants .RESOURCE_DIR ;
7783import static oracle .weblogic .kubernetes .utils .ApplicationUtils .collectAppAvailability ;
7884import static oracle .weblogic .kubernetes .utils .ApplicationUtils .deployAndAccessApplication ;
7985import static oracle .weblogic .kubernetes .utils .ApplicationUtils .verifyAdminConsoleAccessible ;
86+ import static oracle .weblogic .kubernetes .utils .ApplicationUtils .verifyAdminServerRESTAccess ;
8087import static oracle .weblogic .kubernetes .utils .AuxiliaryImageUtils .createPushAuxiliaryImageWithDomainConfig ;
8188import static oracle .weblogic .kubernetes .utils .CommonMiiTestUtils .verifyPodsNotRolled ;
8289import static oracle .weblogic .kubernetes .utils .CommonTestUtils .checkServiceExists ;
90+ import static oracle .weblogic .kubernetes .utils .CommonTestUtils .createIngressHostRouting ;
91+ import static oracle .weblogic .kubernetes .utils .CommonTestUtils .formatIPv6Host ;
8392import static oracle .weblogic .kubernetes .utils .CommonTestUtils .getNextFreePort ;
84- import static oracle .weblogic .kubernetes .utils .CommonTestUtils .startPortForwardProcess ;
85- import static oracle .weblogic .kubernetes .utils .CommonTestUtils .stopPortForwardProcess ;
8693import static oracle .weblogic .kubernetes .utils .CommonTestUtils .testUntil ;
8794import static oracle .weblogic .kubernetes .utils .DomainUtils .verifyDomainStatusConditionTypeDoesNotExist ;
8895import static oracle .weblogic .kubernetes .utils .FileUtils .generateFileFromTemplate ;
@@ -124,7 +131,9 @@ class ItOperatorWlsUpgrade {
124131
125132 private static LoggingFacade logger = null ;
126133 private String domainUid = "domain1" ;
127- private String adminServerPodName = domainUid + "-admin-server" ;
134+ private String adminServerName = "admin-server" ;
135+ private int adminPort = 7001 ;
136+ private String adminServerPodName = domainUid + "-" + adminServerName ;
128137 private String managedServerPodNamePrefix = domainUid + "-managed-server" ;
129138 private int replicaCount = 2 ;
130139 private List <String > namespaces ;
@@ -137,6 +146,7 @@ class ItOperatorWlsUpgrade {
137146 private Path destDomainYaml = null ;
138147 private static String miiAuxiliaryImageTag = "aux-explict-upgrade" ;
139148 private static final String miiAuxiliaryImage = MII_AUXILIARY_IMAGE_NAME + ":" + miiAuxiliaryImageTag ;
149+ private static String hostHeader ;
140150
141151 /**
142152 * For each test:
@@ -174,69 +184,82 @@ void testOperatorWlsUpgradeFrom338ToCurrent(String domainType) {
174184 }
175185
176186 /**
177- * Operator upgrade from 3.4.8 to current.
187+ * Operator upgrade from 3.4.12 to current.
178188 */
179189 @ ParameterizedTest
180- @ DisplayName ("Upgrade Operator from 3.4.8 to current" )
190+ @ DisplayName ("Upgrade Operator from 3.4.12 to current" )
181191 @ ValueSource (strings = { "Image" , "FromModel" })
182- void testOperatorWlsUpgradeFrom348ToCurrent (String domainType ) {
183- logger .info ("Starting test testOperatorWlsUpgradeFrom348ToCurrent with domain type {0}" , domainType );
184- installAndUpgradeOperator (domainType , "3.4.8 " , OLD_DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
192+ void testOperatorWlsUpgradeFrom3412ToCurrent (String domainType ) {
193+ logger .info ("Starting test testOperatorWlsUpgradeFrom3412ToCurrent with domain type {0}" , domainType );
194+ installAndUpgradeOperator (domainType , "3.4.12 " , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
185195 }
186196
187197 /**
188- * Operator upgrade from 3.4.9 to current.
198+ * Operator upgrade from 3.4.13 to current.
189199 */
190200 @ ParameterizedTest
191- @ DisplayName ("Upgrade Operator from 3.4.9 to current" )
201+ @ DisplayName ("Upgrade Operator from 3.4.13 to current" )
192202 @ ValueSource (strings = { "Image" , "FromModel" })
193- void testOperatorWlsUpgradeFrom349ToCurrent (String domainType ) {
194- logger .info ("Starting test testOperatorWlsUpgradeFrom346ToCurrent with domain type {0}" , domainType );
195- installAndUpgradeOperator (domainType , "3.4.9 " , OLD_DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
203+ void testOperatorWlsUpgradeFrom3413ToCurrent (String domainType ) {
204+ logger .info ("Starting test testOperatorWlsUpgradeFrom3413ToCurrent with domain type {0}" , domainType );
205+ installAndUpgradeOperator (domainType , "3.4.13 " , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
196206 }
197207
208+
209+ /**
210+ * Operator upgrade from 4.0.8 to current.
211+ */
212+ @ ParameterizedTest
213+ @ DisplayName ("Upgrade Operator from 4.0.8 to current" )
214+ @ ValueSource (strings = { "Image" , "FromModel" })
215+ void testOperatorWlsUpgradeFrom408ToCurrent (String domainType ) {
216+ logger .info ("Starting test testOperatorWlsUpgradeFrom408ToCurrent with domain type {0}" , domainType );
217+ installAndUpgradeOperator (domainType , "4.0.8" , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
218+ }
219+
198220 /**
199- * Operator upgrade from 4.0.7 to current.
221+ * Operator upgrade from 4.0.9 to current.
200222 */
201223 @ ParameterizedTest
202- @ DisplayName ("Upgrade Operator from 4.0.7 to current" )
224+ @ DisplayName ("Upgrade Operator from 4.0.9 to current" )
203225 @ ValueSource (strings = { "Image" , "FromModel" })
204- void testOperatorWlsUpgradeFrom407ToCurrent (String domainType ) {
205- logger .info ("Starting test testOperatorWlsUpgradeFrom407ToCurrent with domain type {0}" , domainType );
206- installAndUpgradeOperator (domainType , "4.0.7 " , OLD_DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
226+ void testOperatorWlsUpgradeFrom409ToCurrent (String domainType ) {
227+ logger .info ("Starting test testOperatorWlsUpgradeFrom409ToCurrent with domain type {0}" , domainType );
228+ installAndUpgradeOperator (domainType , "4.0.9 " , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
207229 }
208230
209231 /**
210- * Operator upgrade from 4.0.8 to current.
232+ * Operator upgrade from 4.0.10 to current.
211233 */
212234 @ ParameterizedTest
213- @ DisplayName ("Upgrade Operator from 4.0.8 to current" )
235+ @ DisplayName ("Upgrade Operator from 4.0.10 to current" )
214236 @ ValueSource (strings = { "Image" , "FromModel" })
215- void testOperatorWlsUpgradeFrom406ToCurrent (String domainType ) {
216- logger .info ("Starting test testOperatorWlsUpgradeFrom408ToCurrent with domain type {0}" , domainType );
217- installAndUpgradeOperator (domainType , "4.0.8 " , OLD_DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
237+ void testOperatorWlsUpgradeFrom4010ToCurrent (String domainType ) {
238+ logger .info ("Starting test testOperatorWlsUpgradeFrom4010ToCurrent with domain type {0}" , domainType );
239+ installAndUpgradeOperator (domainType , "4.0.10 " , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
218240 }
241+
219242
220243 /**
221- * Operator upgrade from 4.1.0 to current.
244+ * Operator upgrade from 4.1.7 to current.
222245 */
223246 @ ParameterizedTest
224- @ DisplayName ("Upgrade Operator from 4.1.0 to current" )
247+ @ DisplayName ("Upgrade Operator from 4.1.7 to current" )
225248 @ ValueSource (strings = { "Image" , "FromModel" })
226- void testOperatorWlsUpgradeFrom410ToCurrent (String domainType ) {
227- logger .info ("Starting test testOperatorWlsUpgradeFrom410ToCurrent with domain type {0}" , domainType );
228- installAndUpgradeOperator (domainType , "4.1.0 " , OLD_DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
249+ void testOperatorWlsUpgradeFrom417ToCurrent (String domainType ) {
250+ logger .info ("Starting test testOperatorWlsUpgradeFrom417ToCurrent with domain type {0}" , domainType );
251+ installAndUpgradeOperator (domainType , "4.1.7 " , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
229252 }
230253
231254 /**
232- * Operator upgrade from 4.1.1 to current.
255+ * Operator upgrade from 4.1.8 to current.
233256 */
234257 @ ParameterizedTest
235- @ DisplayName ("Upgrade Operator from 4.1.1 to current" )
258+ @ DisplayName ("Upgrade Operator from 4.1.8 to current" )
236259 @ ValueSource (strings = { "Image" , "FromModel" })
237- void testOperatorWlsUpgradeFrom411ToCurrent (String domainType ) {
238- logger .info ("Starting test testOperatorWlsUpgradeFrom411ToCurrent with domain type {0}" , domainType );
239- installAndUpgradeOperator (domainType , "4.1.1 " , OLD_DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
260+ void testOperatorWlsUpgradeFrom418ToCurrent (String domainType ) {
261+ logger .info ("Starting test testOperatorWlsUpgradeFrom418ToCurrent with domain type {0}" , domainType );
262+ installAndUpgradeOperator (domainType , "4.1.8 " , DOMAIN_VERSION , DEFAULT_EXTERNAL_SERVICE_NAME_SUFFIX );
240263 }
241264
242265 /**
@@ -661,26 +684,6 @@ private void removePortForwardingAttribute(
661684 boolean result = Command .withParams (params ).execute ();
662685 }
663686
664- private void checkAdminPortForwarding (String domainNamespace , boolean successExpected ) {
665-
666- logger .info ("Checking port forwarding [{0}]" , successExpected );
667- String forwardPort =
668- startPortForwardProcess ("localhost" , domainNamespace ,
669- domainUid , 7001 );
670- assertNotNull (forwardPort , "port-forward fails to assign local port" );
671- logger .info ("Forwarded admin-port is {0}" , forwardPort );
672- if (successExpected ) {
673- verifyAdminConsoleAccessible (domainNamespace , "localhost" ,
674- forwardPort , false );
675- logger .info ("ready app is accessible thru port forwarding" );
676- } else {
677- verifyAdminConsoleAccessible (domainNamespace , "localhost" ,
678- forwardPort , false , false );
679- logger .info ("WebLogic console shouldn't accessible thru port forwarding" );
680- }
681- stopPortForwardProcess (domainNamespace );
682- }
683-
684687 /**
685688 * Replace the fields in domain yaml file with testing attributes.
686689 * For example, namespace, domainUid, and image. Then create domain using
@@ -754,17 +757,23 @@ private void createWlsDomainAndVerifyByDomainYaml(String domainType,
754757 private void verifyDomain (String domainUidString , String domainNamespace , String externalServiceNameSuffix ) {
755758
756759 checkDomainStarted (domainUid , domainNamespace );
760+
761+ if (KIND_CLUSTER && !WLSIMG_BUILDER .equals (WLSIMG_BUILDER_DEFAULT )) {
762+ hostHeader = createIngressHostRouting (domainNamespace , domainUidString , adminServerName , adminPort );
763+ assertDoesNotThrow (() -> verifyAdminServerRESTAccess (formatIPv6Host (InetAddress .getLocalHost ().getHostAddress ()),
764+ TRAEFIK_INGRESS_HTTP_HOSTPORT , false , hostHeader ));
765+ }
757766
758- logger . info ( "Getting node port for default channel" );
759- int serviceNodePort = assertDoesNotThrow (() -> getServiceNodePort (
760- domainNamespace , getExternalServicePodName ( adminServerPodName , externalServiceNameSuffix ), "default" ),
761- "Getting admin server node port failed" );
762- logger . info ( "Got node port {0} for default channel for domainNameSpace {1}" , serviceNodePort , domainNamespace );
763-
764- logger .info ("Validating WebLogic admin server access by login to console" );
765- verifyAdminConsoleAccessible (domainNamespace , K8S_NODEPORT_HOST ,
766- String .valueOf (serviceNodePort ), false );
767-
767+ if ( WLSIMG_BUILDER . equals ( WLSIMG_BUILDER_DEFAULT )) {
768+ logger . info ( "Getting node port for default channel" );
769+ int serviceNodePort = assertDoesNotThrow (() -> getServiceNodePort (
770+ domainNamespace , getExternalServicePodName ( adminServerPodName , externalServiceNameSuffix ), "default" ),
771+ "Getting admin server node port failed" );
772+ logger . info ( "Got node port {0} for default channel for domainNameSpace {1}" , serviceNodePort , domainNamespace );
773+ logger .info ("Validating WebLogic admin server access by login to console" );
774+ verifyAdminConsoleAccessible (domainNamespace , K8S_NODEPORT_HOST ,
775+ String .valueOf (serviceNodePort ), false );
776+ }
768777 }
769778
770779}
0 commit comments