MCPcopy Create free account
hub / github.com/alibaba/GraphScope / KubernetesClusterLauncher

Class KubernetesClusterLauncher

python/graphscope/deploy/kubernetes/cluster.py:46–434  ·  view source on GitHub ↗

Class for setting up GraphScope instance on kubernetes cluster.

Source from the content-addressed store, hash-verified

44
45
46class KubernetesClusterLauncher(Launcher):
47 """Class for setting up GraphScope instance on kubernetes cluster."""
48
49 _coordinator_name_prefix = "coordinator-"
50
51 _role_name_prefix = "gs-reader-"
52 _role_binding_name_prefix = f"{_role_name_prefix}binding-"
53 _cluster_role_name_prefix = "gs-cluster-reader-"
54 _cluster_role_binding_name_prefix = f"{_cluster_role_name_prefix}binding-"
55
56 _url_pattern = r"(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))" # noqa: E501
57 _endpoint_pattern = r"(?:http.*://)?(?P<host>[^:/ ]+).?(?P<port>[0-9]*).*"
58
59 _coordinator_container_name = "coordinator"
60 _coordinator_service_port_name = "coordinator"
61
62 def __init__(
63 self,
64 config: Config,
65 api_client: kube_client.ApiClient,
66 ):
67 super().__init__()
68 self._config = copy.deepcopy(config)
69 self._api_client = api_client
70 self._core_api = kube_client.CoreV1Api(api_client)
71 self._app_api = kube_client.AppsV1Api(api_client)
72 self._rbac_api = kube_client.RbacAuthorizationV1Api(api_client)
73
74 self._service_type = config.kubernetes_launcher.service_type
75 self._registry = config.kubernetes_launcher.image.registry
76 self._repository = config.kubernetes_launcher.image.repository
77 self._tag = config.kubernetes_launcher.image.tag
78 self._image_pull_policy = config.kubernetes_launcher.image.pull_policy
79 self._image_pull_secrets = config.kubernetes_launcher.image.pull_secrets
80
81 self._instance_id = config.session.instance_id
82 self._role_name = self._role_name_prefix + self._instance_id
83 self._role_binding_name = self._role_binding_name_prefix + self._instance_id
84 self._cluster_role_name = ""
85 self._cluster_role_binding_name = ""
86
87 # all resource created inside namespace
88 self._resource_object = []
89
90 self._coordinator_name = self._coordinator_name_prefix + self._instance_id
91 self._coordinator_service_name = self._coordinator_name
92
93 self._config.coordinator.deployment_name = self._coordinator_name
94
95 self._namespace = config.kubernetes_launcher.namespace
96 if self._namespace is None:
97 self._namespace = try_to_read_namespace_from_context()
98 # Doesn't have any namespace info in kube context.
99 if self._namespace is None:
100 self._namespace = self._get_free_namespace()
101 self._config.kubernetes_launcher.namespace = self._namespace
102 self._closed = False
103

Callers 2

_connectMethod · 0.90
cluster.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected