Skip to content

Commit

Permalink
Merge 9e46cbe into 9263130
Browse files Browse the repository at this point in the history
  • Loading branch information
nuwang committed Dec 6, 2020
2 parents 9263130 + 9e46cbe commit 3e5d2da
Show file tree
Hide file tree
Showing 16 changed files with 118 additions and 273 deletions.
8 changes: 7 additions & 1 deletion cloudman/clusterman/clients/kube_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def _get_job_pods_in_node(self, node_name, state):
f"spec.nodeName={node_name},status.phase={state}",
"--selector", "job-name", "-o", "yaml"])

def wait_till_jobs_complete(self, node, timeout=3600):
def wait_till_jobs_complete(self, node, timeout=3600*24*7):
name = node.get('metadata', {}).get('name')
retryer = tenacity.Retrying(
stop=tenacity.stop_after_delay(timeout),
Expand All @@ -117,6 +117,12 @@ def drain(self, node, force=True, timeout=120, ignore_daemonsets=True):
f"--ignore-daemonsets={'true' if ignore_daemonsets else 'false'}"]
)

def delete(self, node):
name = node.get('metadata', {}).get('name')
return helpers.run_command(
["kubectl", "delete", "node", name]
)


class KubeSecretService(KubeService):

Expand Down
81 changes: 0 additions & 81 deletions cloudman/clusterman/clients/rancher.py

This file was deleted.

77 changes: 34 additions & 43 deletions cloudman/clusterman/cluster_templates.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import abc
from rest_framework.exceptions import ValidationError
from .clients.rancher import RancherClient
from cloudlaunch import models as cl_models


Expand Down Expand Up @@ -32,44 +31,34 @@ def deactivate_autoscaling(self):

@staticmethod
def get_template_for(context, cluster):
if cluster.cluster_type == "KUBE_RANCHER":
return CMRancherTemplate(context, cluster)
if cluster.cluster_type == "KUBE_RKE":
return CMRKETemplate(context, cluster)
else:
raise KeyError("Cannon get cluster template for unknown cluster "
"type: %s" % cluster.cluster_type)


class CMRancherTemplate(CMClusterTemplate):
class CMRKETemplate(CMClusterTemplate):

def __init__(self, context, cluster):
super(CMRancherTemplate, self).__init__(context, cluster)
settings = cluster.connection_settings.get('rancher_config')
self._rancher_url = settings.get('rancher_url')
self._rancher_api_key = settings.get('rancher_api_key')
self._rancher_cluster_id = settings.get('rancher_cluster_id')
self._rancher_project_id = settings.get('rancher_project_id')
super(CMRKETemplate, self).__init__(context, cluster)
settings = cluster.connection_settings.get('rke_config')
self._rke_registration_server = settings.get('rke_registration_server')
self._rke_registration_token = settings.get('rke_registration_token')
self._rke_cluster_id = settings.get('rke_cluster_id')

@property
def rancher_url(self):
return self._rancher_url
def rke_registration_server(self):
return self._rke_registration_server

@property
def rancher_api_key(self):
return self._rancher_api_key
def rke_registration_token(self):
return self._rke_registration_token

@property
def rancher_cluster_id(self):
return self._rancher_cluster_id
def rke_cluster_id(self):
return self._rke_cluster_id

@property
def rancher_project_id(self):
return self._rancher_project_id

@property
def rancher_client(self):
return RancherClient(self.rancher_url, self.rancher_api_key,
self.rancher_cluster_id,
self.rancher_project_id)

def _find_matching_vm_type(self, zone_model=None, default_vm_type=None,
min_vcpus=0, min_ram=0, vm_family=""):
Expand Down Expand Up @@ -114,30 +103,33 @@ def add_node(self, name, vm_type=None, zone=None, min_vcpus=0, min_ram=0, vm_fam
target_zone=zone)
params = {
'name': name,
'application': 'cm_rancher_kubernetes_plugin',
'application': 'cm_rke_kubernetes_plugin',
'deployment_target_id': deployment_target.id,
'application_version': '0.1.0',
'config_app': {
'rancher_action': 'add_node',
'config_rancher_kube': {
'rancher_url': self.rancher_url,
'rancher_api_key': self.rancher_api_key,
'rancher_cluster_id': self.rancher_cluster_id,
'rancher_project_id': self.rancher_project_id,
'rancher_node_command': (
self.rancher_client.get_cluster_registration_command()
+ " --worker")
'action': 'add_node',
'config_kube_rke': {
'rke_registration_server': self.rke_registration_server,
'rke_registration_token': self.rke_registration_token,
'rke_cluster_id': self.rke_cluster_id
},
"config_appliance": {
"sshUser": "ubuntu",
"runner": "ansible",
"repository": "https://github.com/CloudVE/ansible-docker-boot",
"inventoryTemplate": "${host}\n\n"
"[all:vars]\n"
"ansible_ssh_port=22\n"
"ansible_user='${user}'\n"
"ansible_ssh_private_key_file=pk\n"
"ansible_ssh_extra_args='-o StrictHostKeyChecking=no'\n"
"repository": "https://github.com/CloudVE/cloudman-boot",
"inventoryTemplate":
"[controllers]\n\n"
"[agents]\n"
"${host}\n\n"
"[rke_cluster:children]\n"
"controllers\n"
"agents\n\n"
"[all:vars]\n"
"ansible_ssh_port=22\n"
"ansible_user='${user}'\n"
"ansible_ssh_private_key_file=pk\n"
"ansible_ssh_extra_args='-o StrictHostKeyChecking=no"
" -o ControlMaster=no'\n"
},
'config_cloudlaunch': (settings.get('app_config', {})
.get('config_cloudlaunch', {})),
Expand Down Expand Up @@ -166,4 +158,3 @@ def add_node(self, name, vm_type=None, zone=None, min_vcpus=0, min_ram=0, vm_fam
def remove_node(self, node):
return self.context.cloudlaunch_client.deployments.tasks.create(
action='DELETE', deployment_pk=node.deployment.pk)

16 changes: 8 additions & 8 deletions cloudman/clusterman/fixtures/rancher_app_def.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
[
{
"model": "cloudlaunch.application",
"pk": "cm_rancher_kubernetes_plugin",
"pk": "cm_rke_kubernetes_plugin",
"fields": {
"added": "2016-06-27T22:10:17.212Z",
"updated": "2017-12-22T21:38:44.060Z",
"name": "Rancher Kubernetes Plugin",
"name": "RKE Kubernetes Plugin",
"status": "LIVE",
"summary": "A rancher kubernetes plugin for cloudman",
"summary": "A RKE kubernetes plugin for cloudman",
"maintainer": "cloudve.org",
"description": "A rancher kubernetes plugin for cloudman",
"description": "A RKE kubernetes plugin for cloudman",
"info_url": "",
"icon_url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Logo-ubuntu_no%28r%29-black_orange-hex.svg?download",
"icon_url": "https://docs.rke2.io/assets/logo-horizontal-rke.svg",
"default_launch_config": "",
"default_version": 1,
"display_order": 1000,
Expand All @@ -22,12 +22,12 @@
"model": "cloudlaunch.applicationversion",
"pk": 1,
"fields": {
"application": "cm_rancher_kubernetes_plugin",
"application": "cm_rke_kubernetes_plugin",
"version": "0.1.0",
"frontend_component_path": "",
"frontend_component_name": "",
"backend_component_name": "clusterman.plugins.rancher_kubernetes_app.RancherKubernetesApp",
"default_launch_config": "{\r\n \"config_cloudlaunch\":{\r\n \"firewall\":[\r\n {\r\n \"securityGroup\":\"cloudlaunch-vm\",\r\n \"rules\":[\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"22\",\r\n \"to\":\"22\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"443\",\r\n \"to\":\"443\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n {\r\n \"protocol\":\"udp\",\r\n \"from\":\"8472\",\r\n \"to\":\"8472\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"9099\",\r\n \"to\":\"9099\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"10254\",\r\n \"to\":\"10254\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"6443\",\r\n \"to\":\"6443\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}",
"backend_component_name": "clusterman.plugins.rke_kubernetes_app.RKEKubernetesApp",
"default_launch_config": "{\r\n \"config_cloudlaunch\":{\r\n \"firewall\":[\r\n {\r\n \"securityGroup\":\"cloudlaunch-vm\",\r\n \"rules\":[\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"22\",\r\n \"to\":\"22\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n {\r\n \"protocol\":\"tcp\",\r\n \"from\":\"443\",\r\n \"to\":\"443\",\r\n \"cidr\":\"0.0.0.0/0\"\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n}",
"default_target": null
}
}
Expand Down
2 changes: 1 addition & 1 deletion cloudman/clusterman/management/commands/create_cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

class Command(BaseCommand):
help = 'Creates a CloudMan cluster. Currently supported cluster' \
'types: RANCHER_KUBE. Specify rancher connection settings in yaml' \
'types: KUBE_RKE. Specify RKE connection settings in yaml' \
'format in the settings_file.'

def add_arguments(self, parser):
Expand Down
4 changes: 2 additions & 2 deletions cloudman/clusterman/management/commands/import_cloud_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ def load_cloud_data(json_data):
image_obj, _ = cl_models.Image.objects.get_or_create(
name=name, defaults={**image, "region": region_obj})

# connect rancher app as target
# connect rke app as target
version = cl_models.ApplicationVersion.objects.filter(
application='cm_rancher_kubernetes_plugin').first()
application='cm_rke_kubernetes_plugin').first()
target = cl_models.CloudDeploymentTarget.objects.filter(
target_zone=zone_obj).first()
cl_models.ApplicationVersionCloudConfig.objects.create(
Expand Down

0 comments on commit 3e5d2da

Please sign in to comment.