From 2d914edff0a30f55a1dd79be8da6d32b50612e13 Mon Sep 17 00:00:00 2001 From: David Jumani Date: Wed, 1 Feb 2023 15:44:29 +0530 Subject: [PATCH] cks: Fix provider deployment when cluster is in a project (#7147) --- .../actionworkers/KubernetesClusterActionWorker.java | 11 +++++++++-- .../main/resources/script/deploy-cloudstack-secret | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterActionWorker.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterActionWorker.java index ba0615261ba..2114ce40237 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterActionWorker.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterActionWorker.java @@ -37,6 +37,7 @@ import com.cloud.network.Network; import com.cloud.network.Network.GuestType; import com.cloud.network.NetworkModel; import com.cloud.network.dao.NetworkDao; +import com.cloud.projects.ProjectService; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.Storage; import com.cloud.storage.VMTemplateVO; @@ -137,6 +138,8 @@ public class KubernetesClusterActionWorker { protected VirtualMachineManager itMgr; @Inject protected LaunchPermissionDao launchPermissionDao; + @Inject + public ProjectService projectService; protected KubernetesClusterDao kubernetesClusterDao; protected KubernetesClusterVmMapDao kubernetesClusterVmMapDao; @@ -469,13 +472,17 @@ public class KubernetesClusterActionWorker { protected boolean createCloudStackSecret(String[] keys) { File pkFile = getManagementServerSshPublicKeyFile(); Pair publicIpSshPort = getKubernetesClusterServerIpSshPort(null); - List vmMapVOList = getKubernetesClusterVMMaps(); publicIpAddress = publicIpSshPort.first(); sshPort = publicIpSshPort.second(); try { - final String command = String.format("sudo %s/%s -u '%s' -k '%s' -s '%s'", + String command = String.format("sudo %s/%s -u '%s' -k '%s' -s '%s'", scriptPath, deploySecretsScriptFilename, ApiServiceConfiguration.ApiServletPath.value(), keys[0], keys[1]); + Account account = accountDao.findById(kubernetesCluster.getAccountId()); + if (account != null && account.getType() == Account.Type.PROJECT) { + String projectId = projectService.findByProjectAccountId(account.getId()).getUuid(); + command = String.format("%s -p '%s'", command, projectId); + } Pair result = SshHelper.sshExecute(publicIpAddress, sshPort, getControlNodeLoginUser(), pkFile, null, command, 10000, 10000, 60000); return result.first(); diff --git a/plugins/integrations/kubernetes-service/src/main/resources/script/deploy-cloudstack-secret b/plugins/integrations/kubernetes-service/src/main/resources/script/deploy-cloudstack-secret index 9356f8a03f1..9ffd3ecc84a 100755 --- a/plugins/integrations/kubernetes-service/src/main/resources/script/deploy-cloudstack-secret +++ b/plugins/integrations/kubernetes-service/src/main/resources/script/deploy-cloudstack-secret @@ -24,6 +24,7 @@ Arguments: -u, --url string ID of the cluster -k, --key string API Key -s, --secret string Secret Key + -p, --project string Project ID Other arguments: -h, --help Display this help message and exit Examples: @@ -34,6 +35,8 @@ USAGE API_URL="" API_KEY="" SECRET_KEY="" +PROJECT_ID="" +PROJECT="" while [ -n "$1" ]; do case "$1" in -h | --help) @@ -51,6 +54,11 @@ while [ -n "$1" ]; do SECRET_KEY=$2 shift 2 ;; + -p | --project) + PROJECT_ID=$2 + shift 2 + PROJECT="project-id = $PROJECT_ID" + ;; -*|*) echo "ERROR: no such option $1. -h or --help for help" exit 1 @@ -62,7 +70,9 @@ cat > /tmp/cloud-config <