From 554416a860a8b358af1e7567cb0f2e371aba1705 Mon Sep 17 00:00:00 2001 From: sankar Date: Tue, 27 Jul 2021 08:52:38 -0700 Subject: [PATCH 1/7] pass in credentials to delete images in ocir --- .../oracle/weblogic/kubernetes/extensions/ImageBuilders.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index 85b66168efd..6a2bdd2c0be 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -377,8 +377,11 @@ private String getOcirToken() { Path scriptPath = Paths.get(RESOURCE_DIR, "bash-scripts", "ocirtoken.sh"); String cmd = scriptPath.toFile().getAbsolutePath(); ExecResult result = null; + Map credentials = new HashMap<>(); + credentials.put("-u", OCIR_USERNAME); + credentials.put("-p", OCIR_PASSWORD); try { - result = ExecCommand.exec(cmd, true); + result = ExecCommand.exec(cmd, true, credentials); } catch (Exception e) { logger.info("Got exception while running command: {0}", cmd); logger.info(e.toString()); From 6e027b6ae4ae9301fc663da421bd2f771cb272d6 Mon Sep 17 00:00:00 2001 From: sankar Date: Wed, 28 Jul 2021 17:08:58 -0700 Subject: [PATCH 2/7] added java implementation of getting ocir token --- .../kubernetes/extensions/ImageBuilders.java | 59 +++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index 6a2bdd2c0be..03b47d2a76f 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -6,9 +6,9 @@ import java.io.IOException; import java.nio.file.Files; -import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Base64; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -69,7 +69,6 @@ import static oracle.weblogic.kubernetes.actions.ActionConstants.ARCHIVE_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.DOWNLOAD_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.MODEL_DIR; -import static oracle.weblogic.kubernetes.actions.ActionConstants.RESOURCE_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.STAGE_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.WDT_VERSION; import static oracle.weblogic.kubernetes.actions.ActionConstants.WIT_BUILD_DIR; @@ -372,28 +371,6 @@ public void close() { } } - private String getOcirToken() { - LoggingFacade logger = getLogger(); - Path scriptPath = Paths.get(RESOURCE_DIR, "bash-scripts", "ocirtoken.sh"); - String cmd = scriptPath.toFile().getAbsolutePath(); - ExecResult result = null; - Map credentials = new HashMap<>(); - credentials.put("-u", OCIR_USERNAME); - credentials.put("-p", OCIR_PASSWORD); - try { - result = ExecCommand.exec(cmd, true, credentials); - } catch (Exception e) { - logger.info("Got exception while running command: {0}", cmd); - logger.info(e.toString()); - } - if (result != null) { - logger.info("result.stdout: \n{0}", result.stdout()); - logger.info("result.stderr: \n{0}", result.stderr()); - } - - return result != null ? result.stdout().trim() : null; - } - private void deleteImageOcir(String token, String imageName) { LoggingFacade logger = getLogger(); int firstSlashIdx = imageName.indexOf('/'); @@ -560,4 +537,38 @@ private Callable pullImageFromOcrOrOcirAndPushToKind(String image) { }); } + private String getOcirToken() { + LoggingFacade logger = getLogger(); + String message = OCIR_USERNAME + ":" + OCIR_PASSWORD; + String encodedCredentials = Base64.getEncoder().encodeToString(message.getBytes()); + String headers = "\"Authorization: Basic " + encodedCredentials + "\""; + String ocirRegistryUrl = "https://" + OCIR_REGISTRY + "/20180419/docker/token"; + StringBuilder command = new StringBuilder() + .append("curl -sk") + .append(" -H ") + .append(headers) + .append(" ") + .append(ocirRegistryUrl); + ExecResult result = null; + try { + result = ExecCommand.exec(command.toString()); + } catch (IOException | InterruptedException e) { + logger.info("Got exception while running command: {0}", command); + logger.info(e.toString()); + } + String token = null; + if (result != null) { + logger.info("result.stdout: \n{0}", result.stdout()); + logger.info("result.stderr: \n{0}", result.stderr()); + try { + JsonNode tree = new ObjectMapper().readTree(result.stdout()); + token = tree.path("token").asText(); + logger.info("Got authrization token: \n{0}", token); + } catch (JsonProcessingException ex) { + logger.severe(ex.getLocalizedMessage()); + } + } + return token; + } + } From 63829bccf46b172b56fa6f08ce39c622d3748cf2 Mon Sep 17 00:00:00 2001 From: sankar Date: Wed, 28 Jul 2021 21:03:11 -0700 Subject: [PATCH 3/7] wip --- .../kubernetes/extensions/ImageBuilders.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index 03b47d2a76f..b8d1772f65b 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Base64; @@ -69,6 +70,7 @@ import static oracle.weblogic.kubernetes.actions.ActionConstants.ARCHIVE_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.DOWNLOAD_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.MODEL_DIR; +import static oracle.weblogic.kubernetes.actions.ActionConstants.RESOURCE_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.STAGE_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.WDT_VERSION; import static oracle.weblogic.kubernetes.actions.ActionConstants.WIT_BUILD_DIR; @@ -358,7 +360,7 @@ public void close() { // delete images from OCIR, if necessary if (DOMAIN_IMAGES_REPO.contains("ocir.io")) { - String token = getOcirToken(); + String token = getOcirTokenJava(); if (token != null) { for (String image : pushedImages) { deleteImageOcir(token, image); @@ -371,6 +373,30 @@ public void close() { } } + private String getOcirTokenShell() { + LoggingFacade logger = getLogger(); + Path scriptPath = Paths.get(RESOURCE_DIR, "bash-scripts", "ocirtoken.sh"); + StringBuilder cmd = new StringBuilder() + .append(scriptPath.toFile().getAbsolutePath()) + .append(" -u " + OCIR_USERNAME) + .append(" -p \"" + OCIR_PASSWORD + "\"") + .append(" -e " + OCIR_REGISTRY); + ExecResult result = null; + try { + logger.info("Running command..\n{0}", cmd.toString()); + result = ExecCommand.exec(cmd.toString(), true); + } catch (Exception e) { + logger.info("Got exception while running command: {0}", cmd); + logger.info(e.toString()); + } + if (result != null) { + logger.info("result.stdout: \n{0}", result.stdout()); + logger.info("result.stderr: \n{0}", result.stderr()); + } + + return result != null ? result.stdout().trim() : null; + } + private void deleteImageOcir(String token, String imageName) { LoggingFacade logger = getLogger(); int firstSlashIdx = imageName.indexOf('/'); @@ -537,7 +563,7 @@ private Callable pullImageFromOcrOrOcirAndPushToKind(String image) { }); } - private String getOcirToken() { + private String getOcirTokenJava() { LoggingFacade logger = getLogger(); String message = OCIR_USERNAME + ":" + OCIR_PASSWORD; String encodedCredentials = Base64.getEncoder().encodeToString(message.getBytes()); From 08bdecf1da7d239e8881450faaaa7ca3d8bce2e3 Mon Sep 17 00:00:00 2001 From: sankar Date: Wed, 28 Jul 2021 21:04:55 -0700 Subject: [PATCH 4/7] use shell --- .../oracle/weblogic/kubernetes/extensions/ImageBuilders.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index b8d1772f65b..a94f9b698c7 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -360,7 +360,7 @@ public void close() { // delete images from OCIR, if necessary if (DOMAIN_IMAGES_REPO.contains("ocir.io")) { - String token = getOcirTokenJava(); + String token = getOcirTokenShell(); if (token != null) { for (String image : pushedImages) { deleteImageOcir(token, image); From 5472d8b146707a452afd8f01f6c7d4231858e51c Mon Sep 17 00:00:00 2001 From: sankar Date: Wed, 28 Jul 2021 22:10:55 -0700 Subject: [PATCH 5/7] pass in the username password to generate repo token --- .../kubernetes/extensions/ImageBuilders.java | 39 +------------------ 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index a94f9b698c7..9aae85b1d9b 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -9,7 +9,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Base64; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -360,7 +359,7 @@ public void close() { // delete images from OCIR, if necessary if (DOMAIN_IMAGES_REPO.contains("ocir.io")) { - String token = getOcirTokenShell(); + String token = getOcirToken(); if (token != null) { for (String image : pushedImages) { deleteImageOcir(token, image); @@ -373,7 +372,7 @@ public void close() { } } - private String getOcirTokenShell() { + private String getOcirToken() { LoggingFacade logger = getLogger(); Path scriptPath = Paths.get(RESOURCE_DIR, "bash-scripts", "ocirtoken.sh"); StringBuilder cmd = new StringBuilder() @@ -563,38 +562,4 @@ private Callable pullImageFromOcrOrOcirAndPushToKind(String image) { }); } - private String getOcirTokenJava() { - LoggingFacade logger = getLogger(); - String message = OCIR_USERNAME + ":" + OCIR_PASSWORD; - String encodedCredentials = Base64.getEncoder().encodeToString(message.getBytes()); - String headers = "\"Authorization: Basic " + encodedCredentials + "\""; - String ocirRegistryUrl = "https://" + OCIR_REGISTRY + "/20180419/docker/token"; - StringBuilder command = new StringBuilder() - .append("curl -sk") - .append(" -H ") - .append(headers) - .append(" ") - .append(ocirRegistryUrl); - ExecResult result = null; - try { - result = ExecCommand.exec(command.toString()); - } catch (IOException | InterruptedException e) { - logger.info("Got exception while running command: {0}", command); - logger.info(e.toString()); - } - String token = null; - if (result != null) { - logger.info("result.stdout: \n{0}", result.stdout()); - logger.info("result.stderr: \n{0}", result.stderr()); - try { - JsonNode tree = new ObjectMapper().readTree(result.stdout()); - token = tree.path("token").asText(); - logger.info("Got authrization token: \n{0}", token); - } catch (JsonProcessingException ex) { - logger.severe(ex.getLocalizedMessage()); - } - } - return token; - } - } From 4e310132e1567b0612c8eb3f649213042ebedea9 Mon Sep 17 00:00:00 2001 From: sankar Date: Thu, 29 Jul 2021 14:22:51 -0700 Subject: [PATCH 6/7] remove pushing already existing image --- .../test/java/oracle/weblogic/kubernetes/ItPodsRestart.java | 3 --- .../oracle/weblogic/kubernetes/extensions/ImageBuilders.java | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItPodsRestart.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItPodsRestart.java index 2b6758bf88e..75e31523b5b 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItPodsRestart.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItPodsRestart.java @@ -771,9 +771,6 @@ private static void createAndVerifyMiiDomain() { // get the pre-built image created by IntegrationTestWatcher miiImage = MII_BASIC_IMAGE_NAME + ":" + MII_BASIC_IMAGE_TAG; - // docker login and push image to docker registry if necessary - dockerLoginAndPushImageToRegistry(miiImage); - // create docker registry secret to pull the image from registry // this secret is used only for non-kind cluster logger.info("Creating docker registry secret in namespace {0}", domainNamespace); diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index 9aae85b1d9b..5aac763fb37 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -361,6 +361,8 @@ public void close() { if (DOMAIN_IMAGES_REPO.contains("ocir.io")) { String token = getOcirToken(); if (token != null) { + logger.info("Deleting these images from OCIR"); + logger.info(String.join(", ", pushedImages)); for (String image : pushedImages) { deleteImageOcir(token, image); } From 6fbc558cbfaacabf77aabe3128907f1318720333 Mon Sep 17 00:00:00 2001 From: sankar Date: Thu, 29 Jul 2021 16:40:30 -0700 Subject: [PATCH 7/7] remove logging command with creds --- .../oracle/weblogic/kubernetes/extensions/ImageBuilders.java | 1 - 1 file changed, 1 deletion(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java index 5aac763fb37..0fa49ec4b0c 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/ImageBuilders.java @@ -384,7 +384,6 @@ private String getOcirToken() { .append(" -e " + OCIR_REGISTRY); ExecResult result = null; try { - logger.info("Running command..\n{0}", cmd.toString()); result = ExecCommand.exec(cmd.toString(), true); } catch (Exception e) { logger.info("Got exception while running command: {0}", cmd);