Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at:
*
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
package org.eclipse.jkube.gradle.plugin.task;

import org.eclipse.jkube.gradle.plugin.KubernetesExtension;
import org.eclipse.jkube.kit.resource.helm.HelmConfig;

import javax.inject.Inject;

import java.io.IOException;

import static org.eclipse.jkube.kit.resource.helm.HelmServiceUtil.initHelmConfig;

public abstract class AbstractHelmTask extends AbstractJKubeTask {


@Inject
protected AbstractHelmTask(Class<? extends KubernetesExtension> extensionClass) {
super(extensionClass);
}

@Override
public void run() {
if(kubernetesExtension.getSkipOrDefault()) {
return;
}

try {
HelmConfig helmConfig = initHelmConfig(
kubernetesExtension.getDefaultHelmType(),
kubernetesExtension.javaProject,
kubernetesExtension.getKubernetesTemplateOrDefault(),
kubernetesExtension.helm
).build();

executeTask(helmConfig);

} catch (IOException e) {
kitLogger.error("Error initializing Helm configuration", e);
throw new IllegalStateException(e.getMessage(), e);
}
}

protected abstract void executeTask(HelmConfig helmConfig);
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,18 @@

import javax.inject.Inject;

import static org.eclipse.jkube.kit.resource.helm.HelmServiceUtil.initHelmConfig;

public class KubernetesHelmDependencyUpdateTask extends AbstractJKubeTask {
public class KubernetesHelmDependencyUpdateTask extends AbstractHelmTask {
@Inject
public KubernetesHelmDependencyUpdateTask(Class<? extends KubernetesExtension> extensionClass) {
super(extensionClass);
setDescription("Update the on-disk dependencies to mirror Chart.yaml");
}

@Override
public void run() {
if (kubernetesExtension.getSkipOrDefault()) {
return;
}
protected void executeTask(HelmConfig helmConfig) {
try {
final HelmConfig helm = initHelmConfig(kubernetesExtension.getDefaultHelmType(), kubernetesExtension.javaProject,
kubernetesExtension.getKubernetesTemplateOrDefault(),
kubernetesExtension.helm)
.build();
jKubeServiceHub.getHelmService().dependencyUpdate(helm);
jKubeServiceHub.getHelmService().dependencyUpdate(helmConfig);
} catch (Exception exp) {
kitLogger.error("Error performing helm dependency update", exp);
throw new IllegalStateException(exp.getMessage(), exp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,19 @@

import javax.inject.Inject;

import static org.eclipse.jkube.kit.resource.helm.HelmServiceUtil.initHelmConfig;

public class KubernetesHelmLintTask extends AbstractJKubeTask {
public class KubernetesHelmLintTask extends AbstractHelmTask {
@Inject
public KubernetesHelmLintTask(Class<? extends KubernetesExtension> extensionClass) {
super(extensionClass);
setDescription("Examine Helm chart for possible issues");
}


@Override
public void run() {
if (kubernetesExtension.getSkipOrDefault()) {
return;
}
protected void executeTask(HelmConfig helmConfig) {
try {
final HelmConfig helm = initHelmConfig(kubernetesExtension.getDefaultHelmType(), kubernetesExtension.javaProject,
kubernetesExtension.getKubernetesTemplateOrDefault(),
kubernetesExtension.helm)
.build();
jKubeServiceHub.getHelmService().lint(helm);
jKubeServiceHub.getHelmService().lint(helmConfig);
} catch (Exception exp) {
kitLogger.error("Error performing helm lint", exp);
throw new IllegalStateException(exp.getMessage(), exp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,20 @@

import javax.inject.Inject;

import static org.eclipse.jkube.kit.resource.helm.HelmServiceUtil.initHelmConfig;
import static org.eclipse.jkube.kit.resource.helm.HelmServiceUtil.initHelmPushConfig;

public class KubernetesHelmPushTask extends AbstractJKubeTask {
public class KubernetesHelmPushTask extends AbstractHelmTask {
@Inject
public KubernetesHelmPushTask(Class<? extends KubernetesExtension> extensionClass) {
super(extensionClass);
setDescription("Upload a Helm chart to specified Helm repository.");
}

@Override
public void run() {
if (kubernetesExtension.getSkipOrDefault()) {
return;
}
protected void executeTask(HelmConfig helmConfig) {
try {
HelmConfig helm = initHelmConfig(kubernetesExtension.getDefaultHelmType(), kubernetesExtension.javaProject,
kubernetesExtension.getKubernetesTemplateOrDefault(),
kubernetesExtension.helm).build();
initHelmPushConfig(helm, kubernetesExtension.javaProject);
jKubeServiceHub.getHelmService().uploadHelmChart(helm);
initHelmPushConfig(helmConfig, kubernetesExtension.javaProject);
jKubeServiceHub.getHelmService().uploadHelmChart(helmConfig);
} catch (Exception exp) {
kitLogger.error("Error performing Helm push", exp);
throw new IllegalStateException(exp.getMessage(), exp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,21 @@
import java.io.File;
import java.io.IOException;

import static org.eclipse.jkube.kit.resource.helm.HelmServiceUtil.initHelmConfig;

public class KubernetesHelmTask extends AbstractJKubeTask {
public class KubernetesHelmTask extends AbstractHelmTask {
@Inject
public KubernetesHelmTask(Class<? extends KubernetesExtension> extensionClass) {
super(extensionClass);
setDescription("Generates a Helm chart for the kubernetes resources.");
}

@Override
public void run() {
protected void executeTask(HelmConfig helmConfig) {
try {
File manifest = kubernetesExtension.getKubernetesManifestOrDefault();
if (manifest == null || !manifest.isFile()) {
logManifestNotFoundWarning(manifest);
}
HelmConfig helm = initHelmConfig(kubernetesExtension.getDefaultHelmType(), kubernetesExtension.javaProject,
kubernetesExtension.getKubernetesTemplateOrDefault(),
kubernetesExtension.helm).build();
jKubeServiceHub.getHelmService().generateHelmCharts(helm);
jKubeServiceHub.getHelmService().generateHelmCharts(helmConfig);
} catch (IOException exception) {
throw new IllegalStateException(exception.getMessage(), exception);
}
Expand Down