From 653c95ecf089739adaac692ac06e4b692718d743 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Thu, 21 Feb 2019 18:48:59 +0530 Subject: [PATCH] Removed RuntimeMode from ResourceMojo --- .../core/handler/DeploymentConfigHandler.java | 10 ++-- .../maven/core/handler/ReplicaSetHandler.java | 1 - .../kubernetes/KubernetesResourceUtil.java | 4 -- .../core/handler/ReplicaSetHandlerTest.java | 1 - .../maven/enricher/api/EnricherContext.java | 17 ++---- .../enricher/api/MavenEnricherContext.java | 26 -------- .../standard/DefaultControllerEnricher.java | 13 ++-- .../openshift/DeploymentConfigEnricher.java | 18 ++++-- .../maven/generator/api/FromSelector.java | 2 +- .../maven/generator/api/GeneratorContext.java | 11 ++-- .../generator/api/support/BaseGenerator.java | 3 +- .../maven/generator/api/FromSelectorTest.java | 2 +- .../api/support/BaseGeneratorTest.java | 4 +- .../javaexec/JavaRunGeneratorTest.java | 2 +- .../generator/webapp/WebAppGenerator.java | 2 +- .../expected/kubernetes.yml | 2 +- .../expected/openshift.yml | 2 +- .../expected/kubernetes.yml | 2 +- .../expected/openshift.yml | 2 +- .../maven/plugin/mojo/build/BuildMojo.java | 16 ++--- .../maven/plugin/mojo/build/PushMojo.java | 2 +- .../maven/plugin/mojo/build/ResourceMojo.java | 60 ++++++------------- .../maven/plugin/mojo/develop/WatchMojo.java | 2 +- 23 files changed, 76 insertions(+), 128 deletions(-) diff --git a/core/src/main/java/io/fabric8/maven/core/handler/DeploymentConfigHandler.java b/core/src/main/java/io/fabric8/maven/core/handler/DeploymentConfigHandler.java index 88c8a41f5f..1d612fc77e 100644 --- a/core/src/main/java/io/fabric8/maven/core/handler/DeploymentConfigHandler.java +++ b/core/src/main/java/io/fabric8/maven/core/handler/DeploymentConfigHandler.java @@ -25,8 +25,8 @@ import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; import io.fabric8.kubernetes.api.model.PodSpec; import io.fabric8.kubernetes.api.model.PodTemplateSpec; +import io.fabric8.maven.core.config.PlatformMode; import io.fabric8.maven.core.config.ResourceConfig; -import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.core.util.kubernetes.KubernetesHelper; import io.fabric8.maven.docker.config.ImageConfiguration; import io.fabric8.maven.docker.util.ImageName; @@ -42,11 +42,11 @@ public class DeploymentConfigHandler { } public DeploymentConfig getDeploymentConfig(ResourceConfig config, - List images, Long openshiftDeployTimeoutSeconds, RuntimeMode runtimeMode, Boolean enableAutomaticTrigger) { + List images, Long openshiftDeployTimeoutSeconds, Boolean imageChangeTrigger, Boolean enableAutomaticTrigger, PlatformMode platformMode) { DeploymentConfig deploymentConfig = new DeploymentConfigBuilder() .withMetadata(createDeploymentConfigMetaData(config)) - .withSpec(createDeploymentConfigSpec(config, images, openshiftDeployTimeoutSeconds, runtimeMode, enableAutomaticTrigger)) + .withSpec(createDeploymentConfigSpec(config, images, openshiftDeployTimeoutSeconds, imageChangeTrigger, enableAutomaticTrigger, platformMode)) .build(); return deploymentConfig; @@ -60,7 +60,7 @@ private ObjectMeta createDeploymentConfigMetaData(ResourceConfig config) { .build(); } - private DeploymentConfigSpec createDeploymentConfigSpec(ResourceConfig config, List images, Long openshiftDeployTimeoutSeconds, RuntimeMode runtimeMode, Boolean enableAutomaticTrigger) { + private DeploymentConfigSpec createDeploymentConfigSpec(ResourceConfig config, List images, Long openshiftDeployTimeoutSeconds, Boolean imageChangeTrigger, Boolean enableAutomaticTrigger, PlatformMode platformMode) { DeploymentConfigSpecBuilder specBuilder = new DeploymentConfigSpecBuilder(); PodTemplateSpec podTemplateSpec = podTemplateHandler.getPodTemplate(config,images); @@ -80,7 +80,7 @@ private DeploymentConfigSpec createDeploymentConfigSpec(ResourceConfig config, L } // add a new image change trigger for the build stream - if (containerToImageMap.size() != 0 && runtimeMode == RuntimeMode.openshift) { + if (containerToImageMap.size() != 0 && imageChangeTrigger) { for (Map.Entry entry : containerToImageMap.entrySet()) { String containerName = entry.getKey(); ImageName image = new ImageName(entry.getValue()); diff --git a/core/src/main/java/io/fabric8/maven/core/handler/ReplicaSetHandler.java b/core/src/main/java/io/fabric8/maven/core/handler/ReplicaSetHandler.java index dc79cb41ee..dab9b185be 100644 --- a/core/src/main/java/io/fabric8/maven/core/handler/ReplicaSetHandler.java +++ b/core/src/main/java/io/fabric8/maven/core/handler/ReplicaSetHandler.java @@ -41,7 +41,6 @@ public class ReplicaSetHandler { public ReplicaSet getReplicaSet(ResourceConfig config, List images) { - return new ReplicaSetBuilder() .withMetadata(createRsMetaData(config)) .withSpec(createRsSpec(config, images)) diff --git a/core/src/main/java/io/fabric8/maven/core/util/kubernetes/KubernetesResourceUtil.java b/core/src/main/java/io/fabric8/maven/core/util/kubernetes/KubernetesResourceUtil.java index 5e0440b600..3d39a90190 100644 --- a/core/src/main/java/io/fabric8/maven/core/util/kubernetes/KubernetesResourceUtil.java +++ b/core/src/main/java/io/fabric8/maven/core/util/kubernetes/KubernetesResourceUtil.java @@ -237,7 +237,6 @@ private static Map readAndEnrichFragment(PlatformMode platformMo if (type != null) { kind = getAndValidateKindFromType(file, type); - } else { // Try name as type kind = FILENAME_TO_KIND_MAPPER.get(name.toLowerCase()); @@ -247,9 +246,6 @@ private static Map readAndEnrichFragment(PlatformMode platformMo } } - if(kind != null && kind.equals("Deployment") && platformMode.equals(PlatformMode.openshift)) { - kind = "DeploymentConfig"; - } addKind(fragment, kind, file.getName()); String apiVersion = apiVersions.getCoreVersion(); diff --git a/core/src/test/java/io/fabric8/maven/core/handler/ReplicaSetHandlerTest.java b/core/src/test/java/io/fabric8/maven/core/handler/ReplicaSetHandlerTest.java index b3ebefda76..c60bca4f49 100644 --- a/core/src/test/java/io/fabric8/maven/core/handler/ReplicaSetHandlerTest.java +++ b/core/src/test/java/io/fabric8/maven/core/handler/ReplicaSetHandlerTest.java @@ -16,7 +16,6 @@ package io.fabric8.maven.core.handler; import io.fabric8.kubernetes.api.model.apps.ReplicaSet; -import io.fabric8.maven.core.config.PlatformMode; import io.fabric8.maven.core.config.ResourceConfig; import io.fabric8.maven.core.config.VolumeConfig; import io.fabric8.maven.core.model.GroupArtifactVersion; diff --git a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/EnricherContext.java b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/EnricherContext.java index f53d16b5de..e59d2d3c94 100644 --- a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/EnricherContext.java +++ b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/EnricherContext.java @@ -18,10 +18,6 @@ import java.io.File; import java.util.List; import java.util.Optional; -import java.util.Properties; - -import io.fabric8.maven.core.config.PlatformMode; -import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.core.model.Configuration; import io.fabric8.maven.core.model.Dependency; import io.fabric8.maven.core.model.GroupArtifactVersion; @@ -111,12 +107,11 @@ default Optional getDependencyVersion(String groupId, String artifactId) return Optional.empty(); } - - PlatformMode getPlatformMode(); - - RuntimeMode getRuntimeMode(); - + /** + * Gets a system property used in project. + * + * @param key name of property + * @return value of property if set. + */ Object getProperty(String key); - - Properties getProperties(); } diff --git a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java index 3c7fdc2f14..0ba679fa33 100644 --- a/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java +++ b/enricher/api/src/main/java/io/fabric8/maven/enricher/api/MavenEnricherContext.java @@ -25,10 +25,8 @@ import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; -import io.fabric8.maven.core.config.PlatformMode; import io.fabric8.maven.core.config.ProcessorConfig; import io.fabric8.maven.core.config.ResourceConfig; -import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.core.model.Configuration; import io.fabric8.maven.core.model.Dependency; import io.fabric8.maven.core.model.GroupArtifactVersion; @@ -64,10 +62,6 @@ public class MavenEnricherContext implements EnricherContext { private MavenSession session; - private RuntimeMode runtimeMode; - - private PlatformMode platformMode; - private Properties properties; private MavenEnricherContext() {} @@ -87,10 +81,6 @@ public Logger getLog() { } - public PlatformMode getPlatformMode() { - return platformMode; - } - @Override public GroupArtifactVersion getGav() { @@ -140,16 +130,11 @@ public ProjectClassLoaders getProjectClassLoaders() { ); } - @Override - public RuntimeMode getRuntimeMode() { return runtimeMode; } - @Override public Object getProperty(String key) { return properties.getProperty(key); } - @Override - public Properties getProperties() { return properties; } // ======================================================================== // Maven specific methods, only available after casting public MavenProject getProject() { @@ -242,22 +227,11 @@ public Builder settings(Settings settings) { return this; } - public Builder runtimeMode(RuntimeMode mode) { - ctx.runtimeMode = mode; - return this; - } - public Builder properties(Properties properties) { ctx.properties = properties; return this; } - - public Builder platformMode(PlatformMode platformMode) { - ctx.platformMode = platformMode; - return this; - } - public MavenEnricherContext build() { ctx.configuration = new Configuration.Builder() diff --git a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultControllerEnricher.java b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultControllerEnricher.java index e7ea0419bc..3d8b7383f2 100644 --- a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultControllerEnricher.java +++ b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/DefaultControllerEnricher.java @@ -61,8 +61,6 @@ public class DefaultControllerEnricher extends BaseEnricher { protected static final String[] POD_CONTROLLER_KINDS = { "ReplicationController", "ReplicaSet", "Deployment", "DeploymentConfig", "StatefulSet", "DaemonSet", "Job" }; - private final RuntimeMode runtimeMode; - private final DeploymentHandler deployHandler; private final DeploymentConfigHandler deployConfigHandler; private final ReplicationControllerHandler rcHandler; @@ -86,7 +84,6 @@ public DefaultControllerEnricher(MavenEnricherContext buildContext) { HandlerHub handlers = new HandlerHub( getContext().getGav(), getContext().getConfiguration().getProperties()); - runtimeMode = buildContext.getRuntimeMode(); rcHandler = handlers.getReplicationControllerHandler(); rsHandler = handlers.getReplicaSetHandler(); deployHandler = handlers.getDeploymentHandler(); @@ -119,7 +116,7 @@ public void create(PlatformMode platformMode, KubernetesListBuilder builder) { builder.addToDeploymentItems(deployHandler.getDeployment(config, images)); } else { log.info("Adding a default DeploymentConfig"); - builder.addToDeploymentConfigItems(deployConfigHandler.getDeploymentConfig(config, images, getOpenshiftDeployTimeoutInSeconds(3600L),runtimeMode, isAutomaticTriggerEnabled(true))); + builder.addToDeploymentConfigItems(deployConfigHandler.getDeploymentConfig(config, images, getOpenshiftDeployTimeoutInSeconds(3600L), getImageChangeTriggerFlag(true), isAutomaticTriggerEnabled(true), platformMode)); } } else if ("statefulSet".equalsIgnoreCase(type)) { log.info("Adding a default StatefulSet"); @@ -227,4 +224,12 @@ private Long getOpenshiftDeployTimeoutInSeconds(Long defaultValue) { return defaultValue; } } + + private Boolean getImageChangeTriggerFlag(Boolean defaultValue) { + if (getContext().getProperty("fabric8.openshift.imageChangeTriggers") != null) { + return Boolean.parseBoolean(getContext().getProperty("fabric8.openshift.imageChangeTriggers").toString()); + } else { + return defaultValue; + } + } } \ No newline at end of file diff --git a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/openshift/DeploymentConfigEnricher.java b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/openshift/DeploymentConfigEnricher.java index 006cae678b..fa3f9b9e49 100644 --- a/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/openshift/DeploymentConfigEnricher.java +++ b/enricher/standard/src/main/java/io/fabric8/maven/enricher/standard/openshift/DeploymentConfigEnricher.java @@ -25,7 +25,6 @@ import io.fabric8.kubernetes.api.model.apps.DeploymentSpec; import io.fabric8.kubernetes.api.model.apps.DeploymentStrategy; import io.fabric8.maven.core.config.PlatformMode; -import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.docker.util.ImageName; import io.fabric8.maven.enricher.api.BaseEnricher; import io.fabric8.maven.enricher.api.MavenEnricherContext; @@ -42,14 +41,14 @@ public class DeploymentConfigEnricher extends BaseEnricher { static final String ENRICHER_NAME = "fmp-openshift-deploymentconfig"; - private RuntimeMode runtimeMode; private Boolean enableAutomaticTrigger; + private Boolean enableImageChangeTrigger; private Long openshiftDeployTimeoutSeconds; public DeploymentConfigEnricher(MavenEnricherContext context) { super(context, ENRICHER_NAME); - this.runtimeMode = context.getRuntimeMode(); this.enableAutomaticTrigger = isAutomaticTriggerEnabled(context, true); + this.enableImageChangeTrigger = getImageChangeTriggerFlag(true); this.openshiftDeployTimeoutSeconds = getOpenshiftDeployTimeoutInSeconds(context, 3600L); } @@ -58,7 +57,7 @@ public void create(PlatformMode platformMode, KubernetesListBuilder builder) { if(platformMode == PlatformMode.openshift) { for(HasMetadata item : builder.buildItems()) { if(item instanceof Deployment) { - DeploymentConfig deploymentConfig = convert(item); + DeploymentConfig deploymentConfig = convert(item, platformMode); removeItemFromBuilder(builder, item); builder.addToDeploymentConfigItems(deploymentConfig); } @@ -77,7 +76,7 @@ private void removeItemFromBuilder(KubernetesListBuilder builder, HasMetadata it builder.withItems(newListItems); } - private DeploymentConfig convert(HasMetadata item) { + private DeploymentConfig convert(HasMetadata item, PlatformMode platformMode) { Deployment resource = (Deployment) item; DeploymentConfigBuilder builder = new DeploymentConfigBuilder(); builder.withMetadata(resource.getMetadata()); @@ -139,7 +138,7 @@ private DeploymentConfig convert(HasMetadata item) { // add a new image change trigger for the build stream if (containerToImageMap.size() != 0) { - if(runtimeMode.equals(RuntimeMode.openshift)) { + if(enableImageChangeTrigger) { for (Map.Entry entry : containerToImageMap.entrySet()) { String containerName = entry.getKey(); ImageName image = new ImageName(entry.getValue()); @@ -180,6 +179,13 @@ private Long getOpenshiftDeployTimeoutInSeconds(MavenEnricherContext enricherCon return defaultValue; } } + private Boolean getImageChangeTriggerFlag(Boolean defaultValue) { + if (getContext().getProperty("fabric8.openshift.imageChangeTriggers") != null) { + return Boolean.parseBoolean(getContext().getProperty("fabric8.openshift.imageChangeTriggers").toString()); + } else { + return defaultValue; + } + } private void validateContainer(Container container) { if (container.getImage() == null) { diff --git a/generator/api/src/main/java/io/fabric8/maven/generator/api/FromSelector.java b/generator/api/src/main/java/io/fabric8/maven/generator/api/FromSelector.java index e056a08ad5..e297dad8f7 100644 --- a/generator/api/src/main/java/io/fabric8/maven/generator/api/FromSelector.java +++ b/generator/api/src/main/java/io/fabric8/maven/generator/api/FromSelector.java @@ -45,7 +45,7 @@ public FromSelector(GeneratorContext context) { } public String getFrom() { - RuntimeMode mode = context.getPlatformMode(); + RuntimeMode mode = context.getRuntimeMode(); OpenShiftBuildStrategy strategy = context.getStrategy(); if (mode == RuntimeMode.openshift && strategy == OpenShiftBuildStrategy.s2i) { return getS2iBuildFrom(); diff --git a/generator/api/src/main/java/io/fabric8/maven/generator/api/GeneratorContext.java b/generator/api/src/main/java/io/fabric8/maven/generator/api/GeneratorContext.java index e4bf6165c9..c5d05ddf6f 100644 --- a/generator/api/src/main/java/io/fabric8/maven/generator/api/GeneratorContext.java +++ b/generator/api/src/main/java/io/fabric8/maven/generator/api/GeneratorContext.java @@ -16,7 +16,6 @@ package io.fabric8.maven.generator.api; import io.fabric8.maven.core.config.OpenShiftBuildStrategy; -import io.fabric8.maven.core.config.PlatformMode; import io.fabric8.maven.core.config.ProcessorConfig; import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.core.service.ArtifactResolverService; @@ -31,7 +30,7 @@ public class GeneratorContext { private MavenProject project; private ProcessorConfig config; private Logger logger; - private RuntimeMode platformMode; + private RuntimeMode runtimeMode; private OpenShiftBuildStrategy strategy; private boolean useProjectClasspath; @@ -55,8 +54,8 @@ public Logger getLogger() { return logger; } - public RuntimeMode getPlatformMode() { - return platformMode; + public RuntimeMode getRuntimeMode() { + return runtimeMode; } public OpenShiftBuildStrategy getStrategy() { @@ -106,8 +105,8 @@ public Builder logger(Logger logger) { return this; } - public Builder platformMode(RuntimeMode mode) { - ctx.platformMode = mode; + public Builder runtimeMode(RuntimeMode mode) { + ctx.runtimeMode = mode; return this; } diff --git a/generator/api/src/main/java/io/fabric8/maven/generator/api/support/BaseGenerator.java b/generator/api/src/main/java/io/fabric8/maven/generator/api/support/BaseGenerator.java index 9c683556bb..3067d31d71 100644 --- a/generator/api/src/main/java/io/fabric8/maven/generator/api/support/BaseGenerator.java +++ b/generator/api/src/main/java/io/fabric8/maven/generator/api/support/BaseGenerator.java @@ -22,7 +22,6 @@ import io.fabric8.maven.core.config.OpenShiftBuildStrategy; import io.fabric8.maven.core.config.RuntimeMode; -import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.core.util.Configs; import io.fabric8.maven.core.util.PrefixedLogger; import io.fabric8.maven.docker.config.BuildImageConfiguration; @@ -112,7 +111,7 @@ protected String getFromAsConfigured() { * @param builder for the build image configuration to add the from to. */ protected void addFrom(BuildImageConfiguration.Builder builder) { - String fromMode = getConfigWithSystemFallbackAndDefault(Config.fromMode, "fabric8.generator.fromMode", getFromModeDefault(context.getPlatformMode())); + String fromMode = getConfigWithSystemFallbackAndDefault(Config.fromMode, "fabric8.generator.fromMode", getFromModeDefault(context.getRuntimeMode())); String from = getConfigWithSystemFallbackAndDefault(Config.from, "fabric8.generator.from", null); if ("docker".equalsIgnoreCase(fromMode)) { String fromImage = from; diff --git a/generator/api/src/test/java/io/fabric8/maven/generator/api/FromSelectorTest.java b/generator/api/src/test/java/io/fabric8/maven/generator/api/FromSelectorTest.java index 5cd5d08e37..dad653a6d4 100644 --- a/generator/api/src/test/java/io/fabric8/maven/generator/api/FromSelectorTest.java +++ b/generator/api/src/test/java/io/fabric8/maven/generator/api/FromSelectorTest.java @@ -78,7 +78,7 @@ public void simple() { .project(project) .config(new ProcessorConfig()) .logger(logger) - .platformMode((RuntimeMode) data[i]) + .runtimeMode((RuntimeMode) data[i]) .strategy((OpenShiftBuildStrategy) data[i + 1]) .build(); diff --git a/generator/api/src/test/java/io/fabric8/maven/generator/api/support/BaseGeneratorTest.java b/generator/api/src/test/java/io/fabric8/maven/generator/api/support/BaseGeneratorTest.java index fb92f48fcf..70d57f4524 100644 --- a/generator/api/src/test/java/io/fabric8/maven/generator/api/support/BaseGeneratorTest.java +++ b/generator/api/src/test/java/io/fabric8/maven/generator/api/support/BaseGeneratorTest.java @@ -296,7 +296,7 @@ public void setupContextKubernetes(final Properties projectProps, final String c ctx.getConfig(); result = config; config.getConfig("test-generator", "from"); result = configFrom; minTimes = 0; config.getConfig("test-generator", "fromMode"); result = configFromMode; minTimes = 0; - ctx.getPlatformMode();result = RuntimeMode.kubernetes;minTimes = 0; + ctx.getRuntimeMode();result = RuntimeMode.kubernetes;minTimes = 0; ctx.getStrategy(); result = null; minTimes = 0; }}; } @@ -308,7 +308,7 @@ public void setupContextOpenShift(final Properties projectProps, final String co ctx.getConfig(); result = config; config.getConfig("test-generator", "from"); result = configFrom; minTimes = 0; config.getConfig("test-generator", "fromMode"); result = configFromMode; minTimes = 0; - ctx.getPlatformMode();result = RuntimeMode.openshift;minTimes = 0; + ctx.getRuntimeMode();result = RuntimeMode.openshift;minTimes = 0; ctx.getStrategy(); result = OpenShiftBuildStrategy.s2i; minTimes = 0; }}; } diff --git a/generator/java-exec/src/test/java/io/fabric8/maven/generator/javaexec/JavaRunGeneratorTest.java b/generator/java-exec/src/test/java/io/fabric8/maven/generator/javaexec/JavaRunGeneratorTest.java index 128d63c9dd..7eca1dd4e9 100644 --- a/generator/java-exec/src/test/java/io/fabric8/maven/generator/javaexec/JavaRunGeneratorTest.java +++ b/generator/java-exec/src/test/java/io/fabric8/maven/generator/javaexec/JavaRunGeneratorTest.java @@ -74,7 +74,7 @@ private Expectations prepareExpectation(final String version, final RuntimeMode ctx.getProject(); result = project; project.getPlugin("io.fabric8:fabric8-maven-plugin"); result = plugin; plugin.getVersion(); result = version; - ctx.getPlatformMode();result = mode; + ctx.getRuntimeMode();result = mode; ctx.getStrategy(); result = strategy; }}; } diff --git a/generator/webapp/src/main/java/io/fabric8/maven/generator/webapp/WebAppGenerator.java b/generator/webapp/src/main/java/io/fabric8/maven/generator/webapp/WebAppGenerator.java index 8e29d9c37a..51292050b0 100644 --- a/generator/webapp/src/main/java/io/fabric8/maven/generator/webapp/WebAppGenerator.java +++ b/generator/webapp/src/main/java/io/fabric8/maven/generator/webapp/WebAppGenerator.java @@ -75,7 +75,7 @@ public boolean isApplicable(List configs) { @Override public List customize(List configs, boolean prePackagePhase) { - if (getContext().getPlatformMode() == RuntimeMode.openshift && + if (getContext().getRuntimeMode() == RuntimeMode.openshift && getContext().getStrategy() == OpenShiftBuildStrategy.s2i && !prePackagePhase) { throw new IllegalArgumentException("S2I not yet supported for the webapp-generator. Use -Dfabric8.mode=kubernetes or " + diff --git a/it/src/it/simple-with-route-flag-false/expected/kubernetes.yml b/it/src/it/simple-with-route-flag-false/expected/kubernetes.yml index 1dac7dea55..9953e09296 100644 --- a/it/src/it/simple-with-route-flag-false/expected/kubernetes.yml +++ b/it/src/it/simple-with-route-flag-false/expected/kubernetes.yml @@ -86,7 +86,7 @@ items: valueFrom: fieldRef: fieldPath: metadata.namespace - image: fabric8-maven-sample-zero-config:latest + image: fabric8/fabric8-maven-sample-zero-config:latest imagePullPolicy: IfNotPresent name: spring-boot ports: diff --git a/it/src/it/simple-with-route-flag-false/expected/openshift.yml b/it/src/it/simple-with-route-flag-false/expected/openshift.yml index 9e43c7cf84..4d19299f9e 100644 --- a/it/src/it/simple-with-route-flag-false/expected/openshift.yml +++ b/it/src/it/simple-with-route-flag-false/expected/openshift.yml @@ -89,7 +89,7 @@ items: valueFrom: fieldRef: fieldPath: metadata.namespace - image: fabric8-maven-sample-zero-config:latest + image: fabric8/fabric8-maven-sample-zero-config:latest imagePullPolicy: IfNotPresent name: spring-boot ports: diff --git a/it/src/it/simple-with-route-flag-true/expected/kubernetes.yml b/it/src/it/simple-with-route-flag-true/expected/kubernetes.yml index 1dac7dea55..9953e09296 100644 --- a/it/src/it/simple-with-route-flag-true/expected/kubernetes.yml +++ b/it/src/it/simple-with-route-flag-true/expected/kubernetes.yml @@ -86,7 +86,7 @@ items: valueFrom: fieldRef: fieldPath: metadata.namespace - image: fabric8-maven-sample-zero-config:latest + image: fabric8/fabric8-maven-sample-zero-config:latest imagePullPolicy: IfNotPresent name: spring-boot ports: diff --git a/it/src/it/simple-with-route-flag-true/expected/openshift.yml b/it/src/it/simple-with-route-flag-true/expected/openshift.yml index a6416e5a61..248e1006ab 100644 --- a/it/src/it/simple-with-route-flag-true/expected/openshift.yml +++ b/it/src/it/simple-with-route-flag-true/expected/openshift.yml @@ -89,7 +89,7 @@ items: valueFrom: fieldRef: fieldPath: metadata.namespace - image: fabric8-maven-sample-zero-config:latest + image: fabric8/fabric8-maven-sample-zero-config:latest imagePullPolicy: IfNotPresent name: spring-boot ports: diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/BuildMojo.java b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/BuildMojo.java index 33e5fc46e3..917898fdcd 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/BuildMojo.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/BuildMojo.java @@ -201,7 +201,7 @@ public class BuildMojo extends io.fabric8.maven.docker.BuildMojo { Fabric8ServiceHub fabric8ServiceHub; // Mode which is resolved, also when 'auto' is set - private RuntimeMode platformMode; + private RuntimeMode runtimeMode; @Override @@ -223,7 +223,7 @@ protected ClusterConfiguration getClusterConfiguration() { @Override protected boolean isDockerAccessRequired() { - return platformMode == RuntimeMode.kubernetes; + return runtimeMode == RuntimeMode.kubernetes; } @Override @@ -327,17 +327,18 @@ protected io.fabric8.maven.core.service.BuildService.BuildServiceConfig getBuild */ @Override public List customizeConfig(List configs) { - platformMode = clusterAccess.resolveRuntimeMode(mode, log); - if (platformMode == RuntimeMode.openshift) { + runtimeMode = clusterAccess.resolveRuntimeMode(mode, log); + log.info("Running in [[B]]%s[[B]] mode", runtimeMode.getLabel()); + if (runtimeMode == RuntimeMode.openshift) { log.info("Using [[B]]OpenShift[[B]] build with strategy [[B]]%s[[B]]", buildStrategy.getLabel()); } else { log.info("Building Docker image in [[B]]Kubernetes[[B]] mode"); } - if (platformMode.equals(PlatformMode.openshift)) { + if (runtimeMode.equals(PlatformMode.openshift)) { Properties properties = project.getProperties(); if (!properties.contains(RuntimeMode.FABRIC8_EFFECTIVE_PLATFORM_MODE)) { - properties.setProperty(RuntimeMode.FABRIC8_EFFECTIVE_PLATFORM_MODE, platformMode.toString()); + properties.setProperty(RuntimeMode.FABRIC8_EFFECTIVE_PLATFORM_MODE, runtimeMode.toString()); } } @@ -361,7 +362,7 @@ private GeneratorContext getGeneratorContext() { .config(extractGeneratorConfig()) .project(project) .logger(log) - .platformMode(platformMode) + .runtimeMode(runtimeMode) .strategy(buildStrategy) .useProjectClasspath(useProjectClasspath) .artifactResolver(getFabric8ServiceHub().getArtifactResolverService()) @@ -391,7 +392,6 @@ private ProcessorConfig extractGeneratorConfig() { public EnricherContext getEnricherContext() { return new MavenEnricherContext.Builder() .project(project) - .runtimeMode(mode) .session(session) .config(extractEnricherConfig()) .images(getResolvedImages()) diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/PushMojo.java b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/PushMojo.java index 14c552f5e0..ec2c9dcfde 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/PushMojo.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/PushMojo.java @@ -123,7 +123,7 @@ public List customizeConfig(List configs .config(generatorConfig) .project(project) .logger(log) - .platformMode(mode) + .runtimeMode(mode) .strategy(buildStrategy) .useProjectClasspath(false) .build(); diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java index 714fd705f8..4c3015903a 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/build/ResourceMojo.java @@ -19,13 +19,13 @@ import io.fabric8.kubernetes.api.model.KubernetesList; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; import io.fabric8.maven.core.access.ClusterAccess; +import io.fabric8.maven.core.access.ClusterConfiguration; import io.fabric8.maven.core.config.MappingConfig; import io.fabric8.maven.core.config.OpenShiftBuildStrategy; import io.fabric8.maven.core.config.PlatformMode; import io.fabric8.maven.core.config.ProcessorConfig; import io.fabric8.maven.core.config.Profile; import io.fabric8.maven.core.config.ResourceConfig; -import io.fabric8.maven.core.config.RuntimeMode; import io.fabric8.maven.core.handler.HandlerHub; import io.fabric8.maven.core.model.GroupArtifactVersion; import io.fabric8.maven.core.util.FileUtil; @@ -156,13 +156,6 @@ public class ResourceMojo extends AbstractFabric8Mojo { @Parameter private List images; - /** - * Whether to perform a Kubernetes build (i.e. against a vanilla Docker daemon) or - * an OpenShift build (with a Docker build against the OpenShift API server. - */ - @Parameter(property = "fabric8.mode") - private RuntimeMode mode = RuntimeMode.DEFAULT; - /** * OpenShift build mode when an OpenShift build is performed. * Can be either "s2i" for an s2i binary build mode or "docker" for a binary @@ -264,14 +257,12 @@ public class ResourceMojo extends AbstractFabric8Mojo { @Parameter(property = "fabric8.openshift.enableAutomaticTrigger", defaultValue = "true") private Boolean enableAutomaticTrigger; + @Parameter(property = "fabric8.openshift.imageChangeTrigger", defaultValue = "true") + private Boolean enableImageChangeTrigger; + @Parameter(property = "docker.skip.resource", defaultValue = "false") protected boolean skipResource; - // Access for creating OpenShift binary builds - private ClusterAccess clusterAccess; - - private RuntimeMode runtimeMode; - /** * The artifact type for attaching the generated resource file to the project. * Can be either 'json' or 'yaml' @@ -381,8 +372,6 @@ public void executeInternal() throws MojoExecutionException, MojoFailureExceptio realResourceDir = ResourceDirCreator.getFinalResourceDir(resourceDir, environment); realResourceDirOpenShiftOverride = ResourceDirCreator.getFinalResourceDir(resourceDirOpenShiftOverride, environment); - - clusterAccess = new ClusterAccess(getClusterConfiguration()); updateKindFilenameMappings(); try { lateInit(); @@ -458,36 +447,16 @@ private void validateIfRequired(File resourceDir, ResourceClassifier classifier) } private void lateInit() { - runtimeMode = clusterAccess.resolveRuntimeMode(mode, log); - log.info("Running in [[B]]%s[[B]] mode", runtimeMode.getLabel()); - - if (isOpenShiftMode()) { - Properties properties = project.getProperties(); - if (!properties.contains(DOCKER_IMAGE_USER)) { - String namespace = clusterAccess.getNamespace(); - log.info("Using docker image name of namespace: " + namespace); - properties.setProperty(DOCKER_IMAGE_USER, namespace); - } - if (!properties.contains(RuntimeMode.FABRIC8_EFFECTIVE_PLATFORM_MODE)) { - properties.setProperty(RuntimeMode.FABRIC8_EFFECTIVE_PLATFORM_MODE, runtimeMode.toString()); - } - } - handlerHub = new HandlerHub( new GroupArtifactVersion(project.getGroupId(), project.getArtifactId(), project.getVersion()), project.getProperties()); } - private boolean isOpenShiftMode() { - return runtimeMode.equals(RuntimeMode.openshift); - } - private KubernetesList generateResources(PlatformMode platformMode, List images, File remoteResources) throws IOException, MojoExecutionException { // Manager for calling enrichers. MavenEnricherContext.Builder ctxBuilder = new MavenEnricherContext.Builder() - .runtimeMode(mode) .project(project) .session(session) .config(extractEnricherConfig()) @@ -606,13 +575,13 @@ private List getResolvedImages(List imag (List configs) -> { try { GeneratorContext ctx = new GeneratorContext.Builder() - .config(extractGeneratorConfig()) - .project(project) - .logger(log) - .platformMode(mode) - .strategy(buildStrategy) - .useProjectClasspath(useProjectClasspath) - .build(); + .config(extractGeneratorConfig()) + .project(project) + .runtimeMode(new ClusterAccess(getClusterConfiguration()).resolveRuntimeMode(null, log)) + .logger(log) + .strategy(buildStrategy) + .useProjectClasspath(useProjectClasspath) + .build(); return GeneratorManager.generate(configs, ctx, true); } catch (Exception e) { throw new IllegalArgumentException("Cannot extract generator: " + e, e); @@ -686,4 +655,11 @@ protected void writeResources(KubernetesList resources, ResourceClassifier class // Attach it to the Maven reactor so that it will also get deployed projectHelper.attachArtifact(project, this.resourceFileType.getArtifactType(), classifier.getValue(), file); } + + protected ClusterConfiguration getClusterConfiguration() { + final ClusterConfiguration.Builder clusterConfigurationBuilder = new ClusterConfiguration.Builder(access); + + return clusterConfigurationBuilder.from(System.getProperties()) + .from(project.getProperties()).build(); + } } diff --git a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/develop/WatchMojo.java b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/develop/WatchMojo.java index b119a9b645..776b7e3146 100644 --- a/plugin/src/main/java/io/fabric8/maven/plugin/mojo/develop/WatchMojo.java +++ b/plugin/src/main/java/io/fabric8/maven/plugin/mojo/develop/WatchMojo.java @@ -252,7 +252,7 @@ public List customizeConfig(List configs .config(extractGeneratorConfig()) .project(project) .logger(log) - .platformMode(mode) + .runtimeMode(mode) .strategy(buildStrategy) .useProjectClasspath(useProjectClasspath) .artifactResolver(serviceHub.getArtifactResolverService())