@ -27,11 +27,14 @@ from heatclient import exc as heatexc
from magnum . common import clients
from magnum . common import context as mag_ctx
from magnum . common import exception
from magnum . common import keystone
from magnum . common import octavia
from magnum . common import short_id
from magnum . conductor . handlers . common import cert_manager
from magnum . conductor . handlers . common import trust_manager
from magnum . conductor import utils as conductor_utils
from magnum . drivers . common import driver
from magnum . drivers . common import k8s_monitor
from magnum . i18n import _
from magnum . objects import fields
@ -238,6 +241,31 @@ class HeatDriver(driver.Driver):
osc . heat ( ) . stacks . delete ( cluster . stack_id )
class KubernetesDriver ( HeatDriver ) :
""" Base driver for Kubernetes clusters. """
def get_monitor ( self , context , cluster ) :
return k8s_monitor . K8sMonitor ( context , cluster )
def get_scale_manager ( self , context , osclient , cluster ) :
# FIXME: Until the kubernetes client is fixed, remove
# the scale_manager.
# https://bugs.launchpad.net/magnum/+bug/1746510
return None
def pre_delete_cluster ( self , context , cluster ) :
""" Delete cloud resources before deleting the cluster. """
if keystone . is_octavia_enabled ( ) :
LOG . info ( " Starting to delete loadbalancers for cluster %s " ,
cluster . uuid )
octavia . delete_loadbalancers ( context , cluster )
def upgrade_cluster ( self , context , cluster , cluster_template ,
max_batch_size , nodegroup , scale_manager = None ,
rollback = False ) :
raise NotImplementedError ( " Must implement ' upgrade_cluster ' " )
class HeatPoller ( object ) :
def __init__ ( self , openstack_client , context , cluster , cluster_driver ) :