def test_cluster_host_config(self): expected_error = "'noderole' list must have two values [ node, role ]" try: K8sClusterHostConfig.create_from_list(noderole=[1, 2, 3]) except AssertionError as e: self.assertEquals( e.args[0], expected_error, ) conf = K8sClusterHostConfig.create_from_list( noderole=["/api/v2/worker/k8shost/1", "master"]) self.assertIsInstance(conf, K8sClusterHostConfig)
def create( self, name, k8shosts_config, description=None, k8s_version=None, pod_network_range="10.192.0.0/12", service_network_range="10.96.0.0/12", pod_dns_domain="cluster.local", persistent_storage_local=False, persistent_storage_nimble_csi=False, ): """Create a K8s Cluster :param name: the cluster name :param k8shosts_config: k8s host ids and roles 'id1:master|worker,id2:master|worker,...' :param description: the cluster descripton :param k8s_version: e.g. 1.17.0 :param pod_network_range: the pod network range, default='10.192.0.0/12' :param service_network_range: the service network range, default='10.96.0.0/12' :param pod_dns_domain: the pod dns domain, default='cluster.local' :param persistent_storage_local: True/False :param persistent_storage_nimble_csi: True/False """ host_config = [ K8sClusterHostConfig.create_from_list(h.split(":")) for h in k8shosts_config.split(",") ] print( get_client().k8s_cluster.create( name=name, description=description, k8s_version=k8s_version, pod_network_range=pod_network_range, service_network_range=service_network_range, pod_dns_domain=pod_dns_domain, persistent_storage_local=persistent_storage_local, persistent_storage_nimble_csi=persistent_storage_nimble_csi, k8shosts_config=host_config, ) )
def create( self, name, k8shosts_config, description=None, k8s_version=None, pod_network_range="10.192.0.0/12", service_network_range="10.96.0.0/12", pod_dns_domain="cluster.local", persistent_storage_local=False, persistent_storage_nimble_csi=False, addons=[], external_identity_server={}, external_groups=[], ): """Create a K8s Cluster. :param name: the cluster name :param k8shosts_config: k8s host ids and roles 'id1:master|worker,id2: master|worker,...' :param description: the cluster descripton :param k8s_version: e.g. 1.17.0 :param pod_network_range: the pod network range, default='10.192.0.0/12' :param service_network_range: the service network range, default='10.96.0.0/12' :param pod_dns_domain: the pod dns domain, default='cluster.local' :param persistent_storage_local: True/False :param persistent_storage_nimble_csi: True/False :param addons: list of required addons. See: `hpecp k8scluster get-available-addons` :param external_identity_server: dict Example { "bind_pwd":"password", "user_attribute":"CN", "bind_type":"search_bind", "bind_dn":"cn=Administrator,CN=Users,DC=samdom,DC=example,DC=com", "host":"10.1.0.15", "group_attribute":"member", "security_protocol":"ldaps", "base_dn":"CN=Users,DC=samdom,DC=example,DC=com", "verify_peer":false, "type":"Active Directory", "port":636} """ host_config = [ K8sClusterHostConfig.create_from_list(h.split(":")) for h in k8shosts_config.split(",") ] print(base.get_client().k8s_cluster.create( name=name, description=description, k8s_version=k8s_version, pod_network_range=pod_network_range, service_network_range=service_network_range, pod_dns_domain=pod_dns_domain, persistent_storage_local=persistent_storage_local, persistent_storage_nimble_csi=persistent_storage_nimble_csi, k8shosts_config=host_config, addons=addons, external_identity_server=external_identity_server, external_groups=external_groups, ))
def create( self, name, k8shosts_config, description=None, k8s_version=None, pod_network_range="10.192.0.0/12", service_network_range="10.96.0.0/12", pod_dns_domain="cluster.local", persistent_storage_local=False, persistent_storage_nimble_csi=False, addons=[], external_identity_server={}, ext_id_svr_bind_pwd=None, ext_id_svr_user_attribute=None, ext_id_svr_bind_type=None, ext_id_svr_bind_dn=None, ext_id_svr_host=None, ext_id_svr_group_attribute=None, ext_id_svr_security_protocol=None, ext_id_svr_base_dn=None, ext_id_svr_verify_peer=None, ext_id_svr_type=None, ext_id_svr_port=None, external_groups=[], datafabric=False, datafabric_name=None, ): """Create a K8s Cluster. :param name: the cluster name :param k8shosts_config: k8s host ids and roles 'id1:master|worker,id2: master|worker,...' :param description: the cluster descripton :param k8s_version: e.g. 1.17.0 :param pod_network_range: the pod network range, default='10.192.0.0/12' :param service_network_range: the service network range, default='10.96.0.0/12' :param pod_dns_domain: the pod dns domain, default='cluster.local' :param persistent_storage_local: True/False :param persistent_storage_nimble_csi: True/False :param addons: list of required addons. See: `hpecp k8scluster get-available-addons` :param external_identity_server: dict (deprecated) Example '{"bind_pwd":"password", "user_attribute":"CN", "bind_type":"search_bind", "bind_dn":"cn=Administrator,CN=Users,DC=samdom,DC=example,DC=com", "host":"10.1.0.15", "group_attribute":"member", "security_protocol":"ldaps", "base_dn":"CN=Users,DC=samdom,DC=example,DC=com", "verify_peer":false, "type":"Active Directory", "port":636}' :param ext_id_svr_bind_pwd str :param ext_id_svr_user_attribute str :param ext_id_svr_bind_type str :param ext_id_svr_bind_dn str :param ext_id_svr_host str :param ext_id_svr_group_attribute str :param ext_id_svr_security_protocol str :param ext_id_svr_base_dn str :param ext_id_svr_verify_peer bool :param ext_id_svr_type str :param ext_id_svr_port int """ host_config = [ K8sClusterHostConfig.create_from_list(h.split(":")) for h in k8shosts_config.split(",") ] if external_identity_server: if not isinstance(external_identity_server, dict): print( ("Could not parse 'external_identity_server' parameter" " - is it valid json?\n" "Received: " + external_identity_server + "\n"), file=sys.stderr, ) sys.exit(1) else: external_identity_server = {} if ext_id_svr_bind_pwd is not None: external_identity_server["bind_pwd"] = ext_id_svr_bind_pwd if ext_id_svr_user_attribute is not None: external_identity_server[ "user_attribute"] = ext_id_svr_user_attribute if ext_id_svr_bind_type is not None: external_identity_server["bind_type"] = ext_id_svr_bind_type if ext_id_svr_bind_dn is not None: external_identity_server["bind_dn"] = ext_id_svr_bind_dn if ext_id_svr_host is not None: external_identity_server["host"] = ext_id_svr_host if ext_id_svr_group_attribute is not None: external_identity_server[ "group_attribute"] = ext_id_svr_group_attribute if ext_id_svr_security_protocol is not None: external_identity_server[ "security_protocol"] = ext_id_svr_security_protocol if ext_id_svr_base_dn is not None: external_identity_server["base_dn"] = ext_id_svr_base_dn if ext_id_svr_verify_peer is not None: external_identity_server["verify_peer"] = json.loads( ext_id_svr_verify_peer.lower()) if ext_id_svr_type is not None: external_identity_server["type"] = ext_id_svr_type if ext_id_svr_port is not None: external_identity_server["port"] = int(ext_id_svr_port) print(base.get_client().k8s_cluster.create( name=name, description=description, k8s_version=k8s_version, pod_network_range=pod_network_range, service_network_range=service_network_range, pod_dns_domain=pod_dns_domain, persistent_storage_local=persistent_storage_local, persistent_storage_nimble_csi=persistent_storage_nimble_csi, k8shosts_config=host_config, addons=addons, external_identity_server=external_identity_server, external_groups=external_groups, datafabric=datafabric, datafabric_name=datafabric_name, ))