diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommand.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommand.java index f4ba07022f7d0a78e95fe8f4dcf31ab0dec71644..fb2e4bd9fba8103546069873fc73cebef49ce47f 100644 --- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommand.java +++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommand.java @@ -16,6 +16,8 @@ public abstract class HelmCommand implements Command { protected static final String HELM_VERSION_2 = "v2"; protected static final String HELM_VERSION_3 = "v3"; + protected static final String KUBECONFIG = "--kubeconfig"; + protected String command; @Override diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommandExecutor.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommandExecutor.java index 01a3fd9b4307cc5eea008c719b76d0442d1d6b4c..dfc719d8abda50051c29c5f4b2ed08aba522ece6 100644 --- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommandExecutor.java +++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/HelmCommandExecutor.java @@ -46,11 +46,11 @@ public class HelmCommandExecutor { this.enableTls = enableTls; } - void executeHelmInstallCommand(String namespace, String releaseName, KubernetesTemplate template, Map<String, String> arguments) { - executeInstall(namespace, releaseName, template, arguments); + void executeHelmInstallCommand(String namespace, String releaseName, KubernetesTemplate template, Map<String, String> arguments, String kubeConfigPath) { + executeInstall(namespace, releaseName, template, arguments, kubeConfigPath); } - private void executeInstall(String namespace, String releaseName, KubernetesTemplate template, Map<String, String> arguments) { + private void executeInstall(String namespace, String releaseName, KubernetesTemplate template, Map<String, String> arguments, String kubeConfigPath) { try { HelmInstallCommand command = HelmInstallCommand.commandWithRepo( helmVersion, @@ -59,7 +59,8 @@ public class HelmCommandExecutor { arguments, constructChartNameWithRepo(template.getChart().getName()), template.getChart().getVersion(), - enableTls + enableTls, + kubeConfigPath ); commandExecutor.execute(command); } catch (CommandExecutionException e) { diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/commands/HelmInstallCommand.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/commands/HelmInstallCommand.java index 940c89fa9b85beac192549668b1df98f86943d54..c5cab7455db3c233b872095ed5eea07afdd93441 100644 --- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/commands/HelmInstallCommand.java +++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/components/helm/commands/HelmInstallCommand.java @@ -25,7 +25,7 @@ public class HelmInstallCommand extends HelmCommand { * @param enableTls flag indicating if tls option should be added * @return complete command object */ - public static HelmInstallCommand commandWithRepo(String helmVersion, String namespace, String releaseName, Map<String, String> values, String chartName, String chartVersion, boolean enableTls) { + public static HelmInstallCommand commandWithRepo(String helmVersion, String namespace, String releaseName, Map<String, String> values, String chartName, String chartVersion, boolean enableTls, String kubeConfigPath) { StringBuilder sb = buildBaseInstallCommand(helmVersion, namespace, releaseName, values); if (chartName == null || chartName.isEmpty()) { throw new IllegalArgumentException("Chart name can't be null or empty"); @@ -35,6 +35,10 @@ public class HelmInstallCommand extends HelmCommand { sb.append(SPACE).append(OPTION_VERSION).append(SPACE).append(chartVersion); } addTlsOptionIfRequired(helmVersion, enableTls, sb); + + if(kubeConfigPath != null && !kubeConfigPath.isEmpty()) { + sb.append(SPACE).append(KUBECONFIG).append(SPACE).append(kubeConfigPath); + } return new HelmInstallCommand(sb.toString()); }