Commit aa1d2c6c authored by xiaohua guan's avatar xiaohua guan Committed by Yas Naoi
Browse files

Issue #3294644 by Xiaohua Guan, yas: Manage Cloud Orchestrator deployment (Add...

Issue #3294644 by Xiaohua Guan, yas: Manage Cloud Orchestrator deployment (Add support for multiple k8s sites)
parent f390e48a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -272,6 +272,7 @@ class CloudClusterCloudLaunchTemplatePlugin extends CloudPluginBase implements C
      ]));
    }
    catch (\Exception $e) {
      $this->messenger->addError($e->getMessage());
      $this->messenger->addError($this->t('Failed to deploy cloud orchestrator.'));
    }

+11 −11
Original line number Diff line number Diff line
kind: Namespace
apiVersion: v1
metadata:
  name: cloud-orchestrator
  name: {{ namespace }}

---

@@ -9,7 +9,7 @@ kind: Secret
apiVersion: v1
metadata:
  name: cloud-orchestrator-secret
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
type: Opaque
@@ -29,7 +29,7 @@ kind: Service
apiVersion: v1
metadata:
  name: cloud-orchestrator
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
spec:
@@ -50,7 +50,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cloud-orchestrator-pvc
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
spec:
@@ -67,7 +67,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
  name: cloud-orchestrator
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
spec:
@@ -165,7 +165,7 @@ kind: Service
apiVersion: v1
metadata:
  name: cloud-orchestrator-mysql
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -182,7 +182,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cloud-orchestrator-mysql-pvc-data
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -199,7 +199,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cloud-orchestrator-mysql-pvc-backup
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -216,7 +216,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
  name: cloud-orchestrator-mysql
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -276,7 +276,7 @@ kind: Service
apiVersion: v1
metadata:
  name: cloud-orchestrator-memcached
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-memcached
spec:
@@ -293,7 +293,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
  name: cloud-orchestrator-memcached
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-memcached
spec:
+11 −11
Original line number Diff line number Diff line
kind: Namespace
apiVersion: v1
metadata:
  name: cloud-orchestrator
  name: {{ namespace }}

---

@@ -9,7 +9,7 @@ kind: Secret
apiVersion: v1
metadata:
  name: cloud-orchestrator-secret
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
type: Opaque
@@ -29,7 +29,7 @@ kind: Service
apiVersion: v1
metadata:
  name: cloud-orchestrator
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
spec:
@@ -50,7 +50,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cloud-orchestrator-pvc
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
spec:
@@ -67,7 +67,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
  name: cloud-orchestrator
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator
spec:
@@ -165,7 +165,7 @@ kind: Service
apiVersion: v1
metadata:
  name: cloud-orchestrator-mysql
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -182,7 +182,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cloud-orchestrator-mysql-pvc-data
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -199,7 +199,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cloud-orchestrator-mysql-pvc-backup
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -216,7 +216,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
  name: cloud-orchestrator-mysql
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-mysql
spec:
@@ -276,7 +276,7 @@ kind: Service
apiVersion: v1
metadata:
  name: cloud-orchestrator-memcached
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-memcached
spec:
@@ -293,7 +293,7 @@ kind: Deployment
apiVersion: apps/v1
metadata:
  name: cloud-orchestrator-memcached
  namespace: cloud-orchestrator
  namespace: {{ namespace }}
  labels:
    k8s-app: cloud-orchestrator-memcached
spec:
+6 −0
Original line number Diff line number Diff line
@@ -27,6 +27,10 @@ parameters:
    title: MySQL database name
    default_value: cloud_orchestrator
    type: textfield
  namespace:
    title: Namespace
    default_value: cloud-orchestrator
    type: textfield
  storage_class:
    title: Storage Class
    default_value: 'default'
@@ -59,6 +63,7 @@ templates:
        title: Kubernetes Configuration
        parameter_refs:
          - storage_class
          - namespace

  arm64:
    label: ARM64
@@ -83,3 +88,4 @@ templates:
        title: Kubernetes Configuration
        parameter_refs:
          - storage_class
          - namespace
+11 −3
Original line number Diff line number Diff line
@@ -82,7 +82,8 @@ class K8sCloudOrchestratorManager implements CloudOrchestratorManagerInterface {
      $entity_type = $this->entityTypeManager->getDefinition($entity_type_id);
      $name = $yaml['metadata']['name'];

      !empty($fields['namespace'])
      $has_namespace = !empty($fields['namespace']);
      $has_namespace
      ? $this->k8sService->$create_method_name(
        $yaml['metadata']['namespace'],
        $yaml
@@ -95,14 +96,21 @@ class K8sCloudOrchestratorManager implements CloudOrchestratorManagerInterface {
      $name_plural_camel = $this->getShortEntityTypeNamePluralCamelByType($entity_type);
      $update_method_name = "update${name_plural_camel}";

      $this->k8sService->$update_method_name([
      $update_method_params = [
        'metadata.name' => $name,
      ], FALSE);
      ];
      if ($has_namespace) {
        $update_method_params['metadata.namespace'] = $yaml['metadata']['namespace'];
      }
      $this->k8sService->$update_method_name($update_method_params, FALSE);

      $params = [
        'cloud_context' => $cloud_context,
        'name' => $name,
      ];
      if ($has_namespace) {
        $params['namespace'] = $yaml['metadata']['namespace'];
      }

      $entities = $this->entityTypeManager
        ->getStorage($entity_type_id)