def common_patch(self): ctx_cluster = CtxCluster.create(TEST_CLUSTER_ID, TEST_PROJECT_ID, token='token') Deployment(ctx_cluster).update_or_create( namespace=TEST_NAMESPACE, name=self.deployment_name, body=gen_deployment_body(self.deployment_name) ) yield Deployment(ctx_cluster).delete(namespace=TEST_NAMESPACE, name=self.deployment_name)
def _update_resources(access_token, release_data, namespace_info, manifest): ctx_cluster = CtxCluster.create(token=access_token, id=namespace_info['cluster_id'], project_id=release_data['project_id']) return (Deployment(ctx_cluster).replace( body=manifest, name=release_data['name'], namespace=namespace_info['name']).data.to_dict())
def list_pods_by_deployment(self, request, project_id_or_code, cluster_id, namespace, deploy_name): # TODO 增加用户对层级资源project/cluster/namespace的权限校验(由于粒度没有细化到Deployment) deployment = Deployment(request.ctx_cluster).get(namespace=namespace, name=deploy_name, is_format=False) labels_string = make_labels_string(getitems(deployment.data.to_dict(), 'spec.selector.matchLabels', {})) pods = Pod(request.ctx_cluster).list( namespace=namespace, label_selector=labels_string, is_format=False, owner_kind=K8sResourceKind.Deployment.value, owner_name=deploy_name, )['items'] return Response(ResourceDefaultFormatter().format_list(pods))
def list_by_namespace(self, request, project_id_or_code, cluster_id, namespace): # TODO 增加用户对层级资源project/cluster/namespace的权限校验 deployments = Deployment(request.ctx_cluster).list(namespace=namespace, is_format=False) return Response(deployments.data.to_dict()['items'])