Skip to content
This repository has been archived by the owner on Mar 16, 2022. It is now read-only.

Commit

Permalink
Merge pull request #23 from icowan/master
Browse files Browse the repository at this point in the history
处理创建java项目提交的 command与 args 参数导致生成的deployment错误
  • Loading branch information
icowan committed Jan 16, 2020
2 parents eb5979b + 01b658a commit 206b487
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 12 deletions.
4 changes: 3 additions & 1 deletion database/kplcloud.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2183,7 +2183,6 @@ VALUES
INSERT INTO `templates` (`id`, `name`, `kind`, `detail`, `rules`, `created_at`, `updated_at`)
VALUES
(1,'service','Service','apiVersion: v1\nkind: Service\nmetadata:\n name: {{.name}}\n namespace: {{.namespace}}\n annotations:\n sidecar.istio.io/inject: \"false\"\n labels:\n app: {{.name}}\nspec:\n ports: {{range $k,$v := .ports}}\n - port: {{$v.port}}\n name: {{$v.name}}\n protocol: {{$v.protocol}}{{end}}\n {{if eq .resourceType \"service\"}}selector:\n app: {{.name}}{{end}}\n---','',NULL,'2019-07-24 14:12:34'),
(2,'deployment','Deployment','apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: {{.name}}\n namespace: {{.namespace}}\n labels:\n app: {{.name}}\n language: {{.language}}\nspec:\n minReadySeconds: 10\n replicas: {{.replicas}}\n selector:\n matchLabels:\n app: {{.name}}\n strategy:\n rollingUpdate:\n maxSurge: 1\n maxUnavailable: 1\n type: RollingUpdate\n template:\n metadata:\n labels:\n app: {{.name}}\n language: {{.language}}\n spec:\n imagePullSecrets:\n - name: regcred\n containers:\n - image: {{.docker_repo}}/{{.image}}{{if .command}}\n command: [{{.command}}]{{end}}{{if .args}}\n args: [{{.args}}]{{end}}\n imagePullPolicy: IfNotPresent\n name: {{.name}}\n ports: {{range $k, $v := .ports}}\n - containerPort: {{$v.port}}{{end}}\n resources:\n requests:\n memory: {{.memory}}\n limits:\n memory: {{.maxMemory}}\n env:\n - name: ENV\n value: prod\n - name: POD_NAME\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: metadata.name\n - name: POD_NAMESPACE\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: metadata.namespace\n - name: INSTANCE_IP\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: status.podIP\n volumeMounts:\n - name: tz-config\n mountPath: /etc/localtime\n volumes:\n - name: \"tz-config\"\n hostPath:\n path: \"/usr/share/zoneinfo/Asia/Shanghai\"','',NULL,'2019-08-09 16:29:48'),
(4,'endpoints','Endpoints','apiVersion: v1\nkind: Endpoints\nmetadata:\n name: {{.name}}\n namespace: {{.namespace}}\nsubsets:{{range $k,$v := .addresses}}\n - addresses:{{range $key,$val := $v.ips}}\n - ip: {{$val}}{{end}}\n ports:{{range $key,$val := $v.ports}}\n - port: {{$val.port}}\n protocol: TCP\n name: {{$val.name}}{{end}}{{end}}','',NULL,'2018-09-21 16:49:16'),
(5,'configmap','ConfigMap','apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: {{.name}}\n namespace: {{.namespace}}\ndata: {{range $k,$v := .data}} \n -{{$v.key}} : {{$v.value}}{{end}}','',NULL,'2018-11-13 17:06:01'),
(6,'ingress','Ingress','apiVersion: apps/v1\nkind: Ingress\nmetadata:\n name: {{.name}}\n namespace: {{.namespace}}\n annotations:\n kubernetes.io/ingress.class: \"traefik\"\nspec:\n rules:{{range $k, $v := .rules}}\n - host: {{$v.domain}}\n http:\n paths:{{range $val := $v.paths}}\n - backend:\n serviceName: {{$val.serviceName}}\n servicePort: {{$val.port}}{{end}}{{end}}\n---','',NULL,'2019-06-03 15:20:24'),
Expand All @@ -2201,6 +2200,9 @@ VALUES
(25,'EmailAlarm','EmailAlarm','<html>\n <body style=\"margin: 0;padding: 0;\">\n <table style=\"font-size: 14px; font-family: Microsoft YaHei UI; border-collapse: collapse; text-align: left; float: left; margin-top:20px; margin-left: 20px; width: 800px; overflow: hidden;\">\n <tr style=\"background: #F5FAFA; color:#666; height: 30px; padding: 0 10px;\">\n <th colspan=\"2\" style=\"background: #CCE8EB;border: 1px solid #cad9ea;color: #666; text-align: center;\">开普勒消息中心-告警</th>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">标题</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.Title}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">项目</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.Name}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">命名空间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.Namespace}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">来源</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">HostName:{{.FromOs}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">内容</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">\n {{range .Content.Alerts}}\n <table style=\"font-size: 12px; font-family: Microsoft YaHei UI; border-collapse: collapse; text-align: left; float: left; width: 650px; overflow: hidden;margin-bottom: 20px;\">\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">告警信息</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.Labels.AlertName}}</td>\n </tr>\n <tr >   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">状态</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.Status}}</td>\n </tr>\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">详情链接</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.GeneratorURL}}</td>\n </tr>\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">来源</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.Annotations.From}}</td>\n </tr>\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">目标</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.Annotations.To}}</td>\n </tr>\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">开始时间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.StartsAt}}</td>\n </tr>\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">结束时间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.EndsAt}}</td>\n </tr>\n <tr>   \n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">详情</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px; word-wrap:break-word;word-break:break-all;\">{{.Annotations.Description}}</td>\n </tr>\n </table>\n {{end}}\n </td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">时间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.CreatedAt}}</td>\n </tr>\n </table>\n </body>\n </html>','','2019-08-22 18:27:51','2019-08-22 18:27:51'),
(26,'EmailNotice','EmailNotice','<html>\n<body style=\"margin: 0;padding: 0;\">\n <table style=\"font-size: 14px; font-family: Microsoft YaHei UI; border-collapse: collapse; text-align: left; float: left; margin-top:20px; margin-left: 20px; width: 500px\">\n <tr style=\"background: #F5FAFA; color:#666; height: 30px; padding: 0 10px;\">\n <th colspan=\"2\" style=\"background: #CCE8EB;border: 1px solid #cad9ea;color: #666; text-align: center;\">开普勒消息中心-通知</th>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">项目</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.Name}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">命名空间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.Namespace}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">事件</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.Action}}({{.WebHooksReq.EventDesc}})</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">描述</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.WebHooksReq.Message}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">来源</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">HostName:{{.FromOs}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">操作人</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.WebHooksReq.Member.Username}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">时间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Notice.CreatedAt}}</td>\n </tr>\n </table>\n</body>\n</html>','','2019-08-22 18:28:21','2019-08-22 18:28:21'),
(27,'EmailProclaim','EmailProclaim','<html>\n<body style=\"margin: 0;padding: 0;\">\n<table style=\"font-size: 14px; font-family: Microsoft YaHei UI; border-collapse: collapse; text-align: left; float: left; margin-top:20px; margin-left: 20px; width: 500px\">\n <tr style=\"background: #F5FAFA; color:#666; height: 30px; padding: 0 10px;\">\n <th colspan=\"2\" style=\"background: #CCE8EB;border: 1px solid #cad9ea;color: #666; text-align: center;\">开普勒消息中心-公告</th>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">标题</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Title}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">内容</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.Content}}</td>\n </tr>\n <tr>\n <td style=\"width: 100px; border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">时间</td>\n <td style=\"border: 1px solid #cad9ea;color: #666;padding: 0 10px;\">{{.CreatedAt}}</td>\n </tr>\n</table>\n</body>\n</html>','','2019-08-22 18:29:03','2019-08-22 18:29:03');
INSERT INTO `templates` (`created_at`, `detail`, `id`, `kind`, `name`, `rules`, `updated_at`)
VALUES
(NULL, 'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: {{.name}}\n namespace: {{.namespace}}\n labels:\n app: {{.name}}\n language: {{.language}}\nspec:\n minReadySeconds: 10\n replicas: {{.replicas}}\n selector:\n matchLabels:\n app: {{.name}}\n strategy:\n rollingUpdate:\n maxSurge: 1\n maxUnavailable: 1\n type: RollingUpdate\n template:\n metadata:\n labels:\n app: {{.name}}\n language: {{.language}}\n spec:\n imagePullSecrets:\n - name: regcred\n containers:\n - image: docker-test-virtual.repo.yrd.creditease.corp/{{.image}}{{if .command}}\n command: {{range $k,$v := .command}}\n - {{$v}}{{end}}{{end}}{{if .args}}\n args: {{range $k,$v := .args}}\n - {{$v}}{{end}}{{end}}\n imagePullPolicy: IfNotPresent\n name: {{.name}}\n ports: {{range $k, $v := .ports}}\n - containerPort: {{$v.port}}{{end}}\n resources:\n requests:\n memory: {{.memory}}\n limits:\n memory: {{.maxMemory}}\n env:\n - name: ENV\n value: prod\n - name: POD_NAME\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: metadata.name\n - name: POD_NAMESPACE\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: metadata.namespace\n - name: INSTANCE_IP\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: status.podIP\n - name: NODE_NAME\n valueFrom:\n fieldRef:\n apiVersion: v1\n fieldPath: spec.nodeName\n volumeMounts:\n - name: tz-config\n mountPath: /etc/localtime\n volumes:\n - name: \"tz-config\"\n hostPath:\n path: \"/usr/share/zoneinfo/Asia/Shanghai\"', 2, 'Deployment', 'deployment', '', '2020-01-16 18:42:23');

ALTER TABLE `projects` ADD INDEX `name` (`name`, `namespace`);
ALTER TABLE `builds` ADD INDEX `name` (`name`, `namespace`);
12 changes: 12 additions & 0 deletions src/pkg/project/transport.go
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,17 @@ func decodeBasicPostRequest(_ context.Context, r *http.Request) (interface{}, er
return nil, encode.ErrBadRoute
}
req.Name = name
var commands, args []string
for _, v := range req.Command {
commands = append(commands, strings.Trim(v, "\""))
}

for _, v := range req.Args {
args = append(args, strings.Trim(v, "\""))
}

req.Command = commands
req.Args = args

//校验项目地址
gitAddr := strings.Trim(req.GitAddr, ":")
Expand All @@ -309,6 +320,7 @@ func decodeBasicPostRequest(_ context.Context, r *http.Request) (interface{}, er
gitAddr += ".git"
}
req.GitAddr = gitAddr

return req, nil
}

Expand Down
1 change: 0 additions & 1 deletion static/index.6f07f542.js

This file was deleted.

1 change: 1 addition & 0 deletions static/index.941379bf.js

Large diffs are not rendered by default.

22 changes: 12 additions & 10 deletions static/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@
<html lang="zh">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>宜人财富开普勒云平台</title>
<link rel="icon" href="https://niu.yirendai.com/kpl-logo-blue.png" type="image/x-icon">
<link href="https://cdn.bootcss.com//nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
<link href="/index.2539ba41.css" rel="stylesheet"></head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>宜人财富开普勒云平台</title>
<link rel="icon" href="https://niu.yirendai.com/kpl-logo-blue.png" type="image/x-icon">
<link href="https://cdn.bootcss.com//nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
<link href="/static/index.2539ba41.css" rel="stylesheet">
</head>
<body>
<div id="root"></div>
<script src="https://cdn.bootcss.com/nprogress/0.2.0/nprogress.min.js"></script>
<script type="text/javascript" src="/index.6f07f542.js"></script></body>
<div id="root"></div>
<script src="https://cdn.bootcss.com/nprogress/0.2.0/nprogress.min.js"></script>
<script type="text/javascript" src="/static/index.941379bf.js"></script>
</body>
</html>
Binary file added static/static/avatar.36b2be4f.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 206b487

Please sign in to comment.