Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fix entrypoint.sh about install #1480

Closed
wants to merge 31 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
e049bd8
feat: add api gateway (#1445)
DokiDoki1103 Feb 29, 2024
1a92cb3
fix: apigateway (#1448)
DokiDoki1103 Mar 6, 2024
6cdf032
fix: api gateway out and in port (#1449)
DokiDoki1103 Mar 6, 2024
23fb779
feat: add nmespace (#1450)
DokiDoki1103 Mar 7, 2024
1df6fe0
feat: add pod logs (#1451)
DokiDoki1103 Mar 8, 2024
b30b984
fix: log (#1452)
DokiDoki1103 Mar 8, 2024
8fba898
fix: sse log cannot be displayed normally (#1453)
yangkaa Mar 11, 2024
5ac4a27
fix: outer port error (#1454)
DokiDoki1103 Mar 11, 2024
eb2b6f8
fix: tcp outer port error (#1456)
DokiDoki1103 Mar 12, 2024
dfd4a8a
fix: image build error (#1457)
DokiDoki1103 Mar 13, 2024
da29dfa
feat: add port (#1458)
DokiDoki1103 Mar 18, 2024
b1fd6d4
fix: unique config key (#1459)
DokiDoki1103 Mar 18, 2024
0b67265
feat: 6.0 quan xian
ZhangSetSail Apr 2, 2024
7eeccad
feat: 6.0 quan xian (#1461)
ZhangSetSail Apr 2, 2024
b07352f
perf: change url
ZhangSetSail Apr 3, 2024
50d449c
feat: perms
ZhangSetSail Apr 3, 2024
ef3bed0
fix: no app perms
ZhangSetSail Apr 4, 2024
7940e8a
fix: service inter failure
ZhangSetSail Apr 8, 2024
44b9ef3
perf: change perms
ZhangSetSail Apr 8, 2024
3e21a1c
fix: perms failure
ZhangSetSail Apr 8, 2024
8f24f6c
Fix 6.0 (#1462)
DokiDoki1103 Apr 12, 2024
477f301
fix: third component stop start (#1463)
DokiDoki1103 May 13, 2024
b5801d7
fix: operator name null (#1464)
DokiDoki1103 May 28, 2024
58a3142
fix: gateway domain split "-" (#1466)
DokiDoki1103 May 31, 2024
7f38985
feat: auto update region (#1471)
DokiDoki1103 Jun 13, 2024
900f658
fix: dind installation docking resource problem (#1475)
paterleng Jun 28, 2024
4daa0c0
fix: modify config table sql query conditions (#1477)
paterleng Jul 2, 2024
46deee8
feat: support config oss (#1479)
DokiDoki1103 Jul 26, 2024
8c0b5d8
fix: entrypoint about install (#1482)
paterleng Jul 26, 2024
7b5158c
perf: support enable oss through config (#1485)
yangkaa Jul 31, 2024
754e32b
fix: delete volume return data
paterleng Aug 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions console/exception/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,59 @@ def __init__(self):
self.msg_show = "团队使用内存已超过限额,请联系企业管理员增加限额"
self.status_code = 412
self.error_code = 10413


class ErrClusterAuthLackOfMemory(ErrInsufficientResource):
def __init__(self):
super(ErrClusterAuthLackOfMemory, self).__init__("cluster lack of memory")
self.msg_show = "集群授权内存不足,请联系集群管理员"
self.status_code = 412
self.error_code = 10414


class ErrClusterAuthLackOfNode(ErrInsufficientResource):
def __init__(self):
super(ErrClusterAuthLackOfNode, self).__init__("cluster lack of node")
self.msg_show = "集群授权节点不足,请联系集群管理员"
self.status_code = 412
self.error_code = 10415


class ErrClusterAuthLackOfLicense(ErrInsufficientResource):
def __init__(self):
super(ErrClusterAuthLackOfLicense, self).__init__("cluster lack of license")
self.msg_show = "集群暂未授权,请联系集群管理员"
self.status_code = 412
self.error_code = 10416


class ErrClusterAuthLackOfLicenseExpire(ErrInsufficientResource):
def __init__(self):
super(ErrClusterAuthLackOfLicenseExpire, self).__init__("cluster lack of license")
self.msg_show = "集群授权已过期,请联系集群管理员"
self.status_code = 412
self.error_code = 10417


class ErrTenantLackOfCPU(ErrInsufficientResource):
def __init__(self):
super(ErrTenantLackOfCPU, self).__init__("tenant lack of cpu")
self.msg_show = "团队使用CPU已超过限额,请联系企业管理员增加限额"
self.status_code = 412
self.error_code = 10418


class ErrTenantQuotaCPULack(ErrInsufficientResource):
def __init__(self):
super(ErrTenantQuotaCPULack, self).__init__("tenant quota lack of cpu")
self.msg_show = "组件启动所需的cpu已经超过团队配额,请联系团队管理员增加限额"
self.status_code = 412
self.error_code = 10419


class ErrTenantQuotaMemoryLack(ErrInsufficientResource):
def __init__(self):
super(ErrTenantQuotaMemoryLack, self).__init__("tenant quota lack of memory")
self.msg_show = "组件启动所需的内存已经超过团队配额,请联系团队管理员增加限额"
self.status_code = 412
self.error_code = 10420
4 changes: 2 additions & 2 deletions console/models/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ def parse_default(self, a):
return ""

def parse_kind(self, a):
# print(a.name, type(a))
if type(a) == CharField:
return "string"
if type(a) == AutoField:
Expand All @@ -75,7 +74,7 @@ class ConsoleSysConfig(BaseModel):
class Meta:
db_table = 'console_sys_config'

key = models.CharField(max_length=32, help_text="key")
key = models.CharField(max_length=32, help_text="key", unique=True)
type = models.CharField(max_length=32, help_text="类型")
value = models.CharField(max_length=4096, null=True, blank=True, help_text="value")
desc = models.CharField(max_length=100, null=True, blank=True, default="", help_text="描述")
Expand Down Expand Up @@ -573,6 +572,7 @@ class Meta:

role_id = models.IntegerField(help_text="角色id")
perm_code = models.IntegerField(help_text='权限编码')
app_id = models.IntegerField(help_text="application ID", default=-1)


class RoleInfo(BaseModel):
Expand Down
6 changes: 4 additions & 2 deletions console/repositories/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
import logging

from datetime import datetime
from django.db.models import Q

from console.exception.bcode import ErrComponentGroupNotFound
from console.repositories.region_app import region_app_repo
from www.apiclient.regionapi import RegionInvokeApi
from django.db.models import Q
from www.models.main import (ServiceGroup, ServiceGroupRelation, TenantServiceGroup)

logger = logging.getLogger("default")
Expand Down Expand Up @@ -81,10 +81,12 @@ def get_group_count_by_team_id_and_group_id(self, team_id, group_id):
group_count = ServiceGroup.objects.filter(tenant_id=team_id, ID=group_id).count()
return group_count

def get_tenant_region_groups(self, team_id, region, query="", app_type=""):
def get_tenant_region_groups(self, team_id, region, query="", app_type="", app_ids=[]):
q = Q(tenant_id=team_id, region_name=region, group_name__icontains=query)
if app_type:
q &= Q(app_type=app_type)
if app_ids and app_ids[0] != -1:
q &= Q(ID__in=app_ids)
return ServiceGroup.objects.filter(q).order_by("-update_time", "-order_index")

def get_tenant_region_groups_count(self, team_id, region):
Expand Down
9 changes: 9 additions & 0 deletions console/repositories/k8s_resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ def update(self, app_id, name, kind, **data):
def delete_by_name(self, app_id, kind, name):
return K8sResource.objects.filter(app_id=app_id, kind=kind, name=name).delete()

def delete_route_by_name(self, name):
return K8sResource.objects.filter(name=name).delete()

def get_route_by_name(self, app_id, name):
return K8sResource.objects.filter(app_id=app_id, name=name)

def delete_by_kind(self, app_id, kind):
return K8sResource.objects.filter(app_id=app_id, kind=kind).delete()

def delete_by_id(self, id):
return K8sResource.objects.filter(ID=id).delete()

Expand Down
6 changes: 6 additions & 0 deletions console/repositories/service_group_relation_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ def get_group_id_by_service(self, svc):
return group[0].group_id
return None

def get_group_id_by_service_tenant(self, svc):
group = ServiceGroupRelation.objects.filter(service_id=svc.service_id, tenant_id=svc.tenant_id)
if group:
return group[0].group_id
return None

@staticmethod
def bulk_create(service_group_rels):
ServiceGroupRelation.objects.bulk_create(service_group_rels)
Expand Down
8 changes: 5 additions & 3 deletions console/services/app_actions/app_manage.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from console.repositories.app_config import (auth_repo, create_step_repo, dep_relation_repo, domain_repo, env_var_repo,
extend_repo, mnt_repo, port_repo, service_attach_repo, service_payment_repo,
tcp_domain, volume_repo)

from console.repositories.app_config_group import app_config_group_service_repo
from console.repositories.compose_repo import compose_relation_repo
from console.repositories.event_repo import event_repo
Expand Down Expand Up @@ -327,6 +328,7 @@ def deploy(self, tenant, service, user, oauth_instance=None, service_copy_path=N
else:
logger.warning("service_source is not exist for service {0}".format(service.service_id))
try:
body['operator'] = user.nick_name
re = region_api.build_service(service.service_region, tenant.tenant_name, service.service_alias, body)
if re and re.get("bean") and re.get("bean").get("status") != "success":
logger.error("deploy component failure {}".format(re))
Expand Down Expand Up @@ -548,10 +550,9 @@ def batch_action(self, region_name, tenant, user, action, service_ids, move_grou
fail_service_name = []
for service in services:
try:
# 第三方组件不具备启动,停止,重启操作
if action == "start" and service.service_source != "third_party":
if action == "start":
self.start(tenant, service, user, oauth_instance=oauth_instance)
elif action == "stop" and service.service_source != "third_party":
elif action == "stop":
self.stop(tenant, service, user)
elif action == "restart" and service.service_source != "third_party":
self.restart(tenant, service, user, oauth_instance=oauth_instance)
Expand Down Expand Up @@ -600,6 +601,7 @@ def batch_operations(self, tenant, region_name, user, action, service_ids, oauth
if code != 200:
raise AbortRequest(415, "failed to get component", "组件信息获取失败")
# 获取数据中心信息
data['operator'] = user.nick_name
try:
_, body = region_api.batch_operation_service(region_name, tenant.tenant_name, data)
events = body["bean"]["batch_result"]
Expand Down
25 changes: 16 additions & 9 deletions console/services/app_config/domain_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@ def bind_domain(self, tenant, user, service, domain_name, container_port, protoc
data["private_key"] = certificate_info.private_key
data["certificate_name"] = certificate_info.alias
data["certificate_id"] = certificate_info.certificate_id
region_api.bind_http_domain(service.service_region, tenant.tenant_name, data)
domain_info = dict()
domain_info["service_id"] = service.service_id
domain_info["service_name"] = service.service_alias
Expand All @@ -246,7 +245,7 @@ def bind_domain(self, tenant, user, service, domain_name, container_port, protoc
domain_info["region_id"] = region.region_id
return domain_repo.add_service_domain(**domain_info)

def unbind_domain(self, tenant, service, container_port, domain_name, is_tcp=False):
def unbind_domain(self, tenant, service, container_port, domain_name, is_tcp=False, app_id=None):
if not is_tcp:
service_domains = domain_repo.get_domain_by_name_and_port(service.service_id, container_port, domain_name)
if not service_domains:
Expand All @@ -258,7 +257,12 @@ def unbind_domain(self, tenant, service, container_port, domain_name, is_tcp=Fal
data["container_port"] = int(container_port)
data["http_rule_id"] = servicer_domain.http_rule_id
try:
region_api.delete_http_domain(service.service_region, tenant.tenant_name, data)
# k8s 资源名 不能以 / * 特殊字符命名,故做替换
# p-p 对应 /
# s-s 对应 *
path_app_id = "/api-gateway/v1/" + tenant.tenant_name + "/routes/http/" + str(
app_id) + servicer_domain.domain_name + "p-ps-s"
region_api.api_gateway_delete_proxy(service.service_region, tenant.tenant_name, path_app_id)
servicer_domain.delete()
except region_api.CallApiError as e:
if e.status != 404:
Expand Down Expand Up @@ -900,7 +904,7 @@ def create_default_gateway_rule(self, tenant, region_info, service, port):
service_id = service.service_id
service_name = service.service_alias
container_port = port.container_port
domain_name = str(container_port) + "." + str(service_name) + "." + str(tenant.tenant_name) + "." + str(
domain_name = str(service_name) + "-" + str(container_port) + "-" + str(tenant.tenant_name) + "-" + str(
region_info.httpdomain)
create_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
protocol = "http"
Expand All @@ -913,11 +917,14 @@ def create_default_gateway_rule(self, tenant, region_info, service, port):
logger.debug("create default gateway http rule for component {0} port {1}".format(
service.service_alias, port.container_port))
else:
res, data = region_api.get_port(region_info.region_name, tenant.tenant_name, True)
if int(res.status) != 200:
logger.warning("can not get stream port from region, ignore {0} port {1}".format(
service.service_alias, port.container_port))
return
svc = port_repo.get_service_port_by_port(tenant.tenant_id, service.service_id, port.container_port)
# 默认创建成功一条tcp记录,端口随机
data = region_api.api_gateway_bind_tcp_domain(
region=service.service_region,
tenant_name=tenant.tenant_name,
k8s_service_name=svc.k8s_service_name,
container_port=svc.container_port,
app_id=None)
end_point = "0.0.0.0:{0}".format(data["bean"])
service_id = service.service_id
service_name = service.service_alias
Expand Down
Loading
Loading