This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 2d914edff0a cks: Fix provider deployment when cluster is in a project
(#7147)
2d914edff0a is described below
commit 2d914edff0a30f55a1dd79be8da6d32b50612e13
Author: David Jumani <[email protected]>
AuthorDate: Wed Feb 1 15:44:29 2023 +0530
cks: Fix provider deployment when cluster is in a project (#7147)
---
.../cluster/actionworkers/KubernetesClusterActionWorker.java | 11 +++++++++--
.../src/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<String, Integer> publicIpSshPort =
getKubernetesClusterServerIpSshPort(null);
- List<KubernetesClusterVmMapVO> 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<Boolean, String> 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 <<EOF
api-url = $API_URL
api-key = $API_KEY
secret-key = $SECRET_KEY
+$PROJECT
EOF
+
# Create secret if not exists
/opt/bin/kubectl -n kube-system get secret cloudstack-secret ||
/opt/bin/kubectl -n kube-system create secret generic cloudstack-secret
--from-file=/tmp/cloud-config
rm /tmp/cloud-config