Skip to content

Commit

Permalink
fix: Build strategy picked up from XML configuration and properties
Browse files Browse the repository at this point in the history
Signed-off-by: Marc Nuri <[email protected]>
  • Loading branch information
manusa committed Aug 3, 2020
1 parent 90136e0 commit 3d92246
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 90 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Usage:
* Fix #290: Bump Fabric8 Kubernetes Client to v4.10.3
* Fix #273: Added new parameter to allow for custom _app_ name
* Fix #329: Vert.x generator and enricher applicable when `io.vertx` dependencies present
* Fix #334: Build strategy picked up from XML configuration and properties

### 1.0.0-rc-1 (2020-07-23)
* Fix #252: Replace Quarkus Native Base image with ubi-minimal (same as in `Dockerfile.native`)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,7 @@ private void init() {
applyService = new LazyBuilder<>(() -> new ApplyService(client, log));
buildService = new LazyBuilder<>(() -> {
BuildService ret;
String jkubeBuildStrategy = (String)configuration.getProperties().get("jkube.build.strategy");
if (jkubeBuildStrategy != null && jkubeBuildStrategy.equalsIgnoreCase(JKubeBuildStrategy.jib.getLabel())) {
if (JKubeBuildStrategy.jib == buildServiceConfig.getJKubeBuildStrategy()) {
return new JibBuildService(JKubeServiceHub.this, log);
}
// Creating platform-dependent services
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import io.fabric8.openshift.client.OpenShiftClient;
import mockit.Expectations;
import org.eclipse.jkube.kit.config.image.build.JKubeBuildStrategy;
import org.eclipse.jkube.kit.config.image.build.JKubeConfiguration;
import org.eclipse.jkube.kit.build.service.docker.ServiceHub;
import org.eclipse.jkube.kit.common.KitLogger;
Expand All @@ -36,37 +37,37 @@

public class JKubeServiceHubTest {

@Mocked
private KitLogger logger;
@Mocked
private KitLogger logger;

@Mocked
private ClusterAccess clusterAccess;
@Mocked
private ClusterAccess clusterAccess;

@Mocked
private OpenShiftClient openShiftClient;
@Mocked
private OpenShiftClient openShiftClient;

@Mocked
private ServiceHub dockerServiceHub;
@Mocked
private ServiceHub dockerServiceHub;

@Mocked
private JKubeConfiguration configuration;
@Mocked
private JKubeConfiguration configuration;

@Mocked
private BuildServiceConfig buildServiceConfig;
@Mocked
private BuildServiceConfig buildServiceConfig;

@Test(expected = NullPointerException.class)
public void testMissingClusterAccess() {
JKubeServiceHub.builder()
.log(logger)
.build();
}
@Test(expected = NullPointerException.class)
public void testMissingClusterAccess() {
JKubeServiceHub.builder()
.log(logger)
.build();
}

@Test(expected = NullPointerException.class)
public void testMissingKitLogger() {
JKubeServiceHub.builder()
.clusterAccess(clusterAccess)
.build();
}
@Test(expected = NullPointerException.class)
public void testMissingKitLogger() {
JKubeServiceHub.builder()
.clusterAccess(clusterAccess)
.build();
}

@SuppressWarnings("ResultOfMethodCallIgnored")
@Test
Expand Down Expand Up @@ -94,11 +95,6 @@ public void testBasicInit() {
@Test
public void testObtainBuildService() {
// Given
// @formatter:off
new Expectations() {{
configuration.getProperties(); result = new Properties();
}};
// @formatter:on
JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
Expand All @@ -114,64 +110,62 @@ public void testObtainBuildService() {
assertTrue(buildService instanceof DockerBuildService);
}

@Test
public void testObtainOpenshiftBuildService() {
new Expectations() {{
configuration.getProperties();
result = new Properties();
}};

JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
.log(logger)
.platformMode(RuntimeMode.OPENSHIFT)
.dockerServiceHub(dockerServiceHub)
.buildServiceConfig(buildServiceConfig)
.build();

BuildService buildService = hub.getBuildService();

assertNotNull(buildService);
assertTrue(buildService instanceof OpenshiftBuildService);
}
@Test
public void testObtainOpenshiftBuildService() {
// Given
// @formatter:off
new Expectations() {{
buildServiceConfig.getJKubeBuildStrategy(); result = null;
}};
// @formatter:on
JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
.log(logger)
.platformMode(RuntimeMode.OPENSHIFT)
.dockerServiceHub(dockerServiceHub)
.buildServiceConfig(buildServiceConfig)
.build();
// When
BuildService buildService = hub.getBuildService();
// Then
assertNotNull(buildService);
assertTrue(buildService instanceof OpenshiftBuildService);
}

@Test
public void testObtainArtifactResolverService() {
JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
.log(logger)
.platformMode(RuntimeMode.KUBERNETES)
.dockerServiceHub(dockerServiceHub)
.build();

assertNotNull(hub.getArtifactResolverService());
}
@Test
public void testObtainArtifactResolverService() {
JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
.log(logger)
.platformMode(RuntimeMode.KUBERNETES)
.dockerServiceHub(dockerServiceHub)
.build();

@Test
public void testObtainJibBuildService() {
// Given
new Expectations() {{
Properties properties = new Properties();
properties.put("jkube.build.strategy", "jib");
configuration.getProperties();
result = properties;
}};
JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
.log(logger)
.platformMode(RuntimeMode.KUBERNETES)
.dockerServiceHub(dockerServiceHub)
.buildServiceConfig(BuildServiceConfig.builder().build())
.build();

// When
BuildService buildService = hub.getBuildService();

// Then
assertNotNull(buildService);
assertTrue(buildService instanceof JibBuildService);
}
assertNotNull(hub.getArtifactResolverService());
}

@Test
public void testObtainJibBuildService() {
// Given
// @formatter:off
new Expectations() {{
buildServiceConfig.getJKubeBuildStrategy(); result = JKubeBuildStrategy.jib;
}};
// @formatter:on
JKubeServiceHub hub = JKubeServiceHub.builder()
.configuration(configuration)
.clusterAccess(clusterAccess)
.log(logger)
.platformMode(RuntimeMode.KUBERNETES)
.dockerServiceHub(dockerServiceHub)
.buildServiceConfig(buildServiceConfig)
.build();
// When
BuildService buildService = hub.getBuildService();
// Then
assertNotNull(buildService);
assertTrue(buildService instanceof JibBuildService);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,7 @@ private void buildAndTag(ImageConfiguration imageConfig)
protected BuildServiceConfig.BuildServiceConfigBuilder buildServiceConfigBuilder() {
return BuildServiceConfig.builder()
.buildRecreateMode(BuildRecreateMode.fromParameter(buildRecreate))
.jKubeBuildStrategy(buildStrategy)
.forcePull(forcePull)
.imagePullManager(getImagePullManager(imagePullPolicy, autoPull))
.buildDirectory(project.getBuild().getDirectory())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ public List<ImageConfiguration> customizeConfig(List<ImageConfiguration> configs
@Override
protected BuildServiceConfig.BuildServiceConfigBuilder buildServiceConfigBuilder() {
return super.buildServiceConfigBuilder()
.jKubeBuildStrategy(getJKubeBuildStrategy())
.openshiftPullSecret(openshiftPullSecret)
.s2iBuildNameSuffix(s2iBuildNameSuffix)
.s2iImageStreamLookupPolicyLocal(s2iImageStreamLookupPolicyLocal);
Expand Down

0 comments on commit 3d92246

Please sign in to comment.