Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
f1f798b9
Commit
f1f798b9
authored
Jul 09, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
暂时提交
parent
b7e73a19
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
109 additions
and
18 deletions
+109
-18
K8sController.java
src/main/java/cn/qg/holmes/controller/k8s/K8sController.java
+28
-2
DockerProject.java
src/main/java/cn/qg/holmes/entity/k8s/DockerProject.java
+6
-1
ServiceCreateVo.java
src/main/java/cn/qg/holmes/entity/k8s/ServiceCreateVo.java
+7
-7
DockerProjectMapper.java
...ain/java/cn/qg/holmes/mapper/k8s/DockerProjectMapper.java
+7
-0
DockerProjectService.java
...n/java/cn/qg/holmes/service/k8s/DockerProjectService.java
+7
-0
TkeService.java
src/main/java/cn/qg/holmes/service/k8s/TkeService.java
+43
-8
DockerProjectServiceImpl.java
.../qg/holmes/service/k8s/impl/DockerProjectServiceImpl.java
+11
-0
No files found.
src/main/java/cn/qg/holmes/controller/k8s/K8sController.java
View file @
f1f798b9
package
cn
.
qg
.
holmes
.
controller
.
k8s
;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.entity.k8s.DockerProject
;
import
cn.qg.holmes.entity.k8s.ServiceCreateVo
;
import
cn.qg.holmes.service.k8s.DockerProjectService
;
import
cn.qg.holmes.service.k8s.ImageService
;
import
cn.qg.holmes.service.k8s.TkeService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.Map
;
/**
* k8及容器操作相关接口
* @author libo
*/
@CrossOrigin
@RestController
@RequestMapping
(
"/k8s"
)
...
...
@@ -20,6 +28,9 @@ public class K8sController {
@Autowired
ImageService
imageService
;
@Autowired
DockerProjectService
dockerProjectService
;
/**
* 获取namespace列表
* @return
...
...
@@ -50,9 +61,24 @@ public class K8sController {
return
JsonResult
.
buildSuccessResult
(
imageService
.
getImageListByService
(
serviceName
));
}
/**
* 新增pod
* @param serviceCreateVo 创建实体类
* @return
*/
@PostMapping
(
"/pod/create"
)
public
JsonResult
createPod
()
{
return
null
;
public
JsonResult
createPod
(
@RequestBody
ServiceCreateVo
serviceCreateVo
)
{
try
{
String
serviceName
=
serviceCreateVo
.
getServiceName
();
QueryWrapper
<
DockerProject
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"project_name"
,
serviceName
);
DockerProject
dockerProject
=
dockerProjectService
.
getOne
(
queryWrapper
);
tkeService
.
createJavaDeployment
(
serviceCreateVo
,
dockerProject
);
return
JsonResult
.
buildSuccessResult
(
"pod创建成功!"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
JsonResult
.
buildErrorStateResult
(
"pod创建失败!"
,
false
);
}
}
/**
...
...
src/main/java/cn/qg/holmes/entity/k8s/DockerProject.java
View file @
f1f798b9
...
...
@@ -8,6 +8,10 @@ import lombok.Data;
import
java.util.Date
;
/**
* docker项目配置实体类
* @author libo
*/
@Data
@TableName
(
"docker_project"
)
public
class
DockerProject
{
...
...
@@ -25,7 +29,7 @@ public class DockerProject {
private
String
buildCommand
;
private
String
startCommand
;
private
String
stopCommand
;
private
String
deployToDocker
;
private
Integer
deployToDocker
;
private
Integer
isActive
;
private
String
database
;
private
String
ddl
;
...
...
@@ -35,6 +39,7 @@ public class DockerProject {
private
String
menRequest
;
private
String
cpuLimit
;
private
String
cpuRequest
;
private
Integer
sonar
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
...
...
src/main/java/cn/qg/holmes/entity/k8s/ServiceCreateVo.java
View file @
f1f798b9
...
...
@@ -4,17 +4,17 @@ import lombok.Data;
/**
* 创建服务接口请求实体类
* @author libo
*/
@Data
public
class
ServiceCreateVo
{
private
Integer
debug
;
private
Integer
mock
;
private
String
domain
;
private
String
image
;
private
String
label
;
private
String
cluster
;
private
String
namespace
;
private
String
serviceName
;
private
String
type
;
private
Integer
wechat
;
private
String
cluster
;
private
String
label
;
private
String
domain
;
private
String
image
;
private
Integer
debug
;
private
Integer
mock
;
}
src/main/java/cn/qg/holmes/mapper/k8s/DockerProjectMapper.java
0 → 100644
View file @
f1f798b9
package
cn
.
qg
.
holmes
.
mapper
.
k8s
;
import
cn.qg.holmes.entity.k8s.DockerProject
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
DockerProjectMapper
extends
BaseMapper
<
DockerProject
>
{
}
src/main/java/cn/qg/holmes/service/k8s/DockerProjectService.java
0 → 100644
View file @
f1f798b9
package
cn
.
qg
.
holmes
.
service
.
k8s
;
import
cn.qg.holmes.entity.k8s.DockerProject
;
import
com.baomidou.mybatisplus.extension.service.IService
;
public
interface
DockerProjectService
extends
IService
<
DockerProject
>
{
}
src/main/java/cn/qg/holmes/service/k8s/TkeService.java
View file @
f1f798b9
...
...
@@ -217,19 +217,24 @@ public class TkeService {
/**
* 部署Java Deployment
* @param serviceCreateVo
* @param dockerProject
* @return
*/
public
Deployment
createJavaDeployment
(
ServiceCreateVo
serviceCreateVo
,
DockerProject
dockerProject
)
{
String
namespace
=
serviceCreateVo
.
getNamespace
();
String
serviceName
=
serviceCreateVo
.
getServiceName
();
String
mock
=
serviceCreateVo
.
getMock
().
toString
();
String
debug
=
serviceCreateVo
.
getDebug
().
toString
();
String
cluster
=
serviceCreateVo
.
getCluster
();
String
label
=
serviceCreateVo
.
getLabel
();
String
image
=
serviceCreateVo
.
getImage
();
Deployment
deployment
=
new
Deployment
();
ObjectMeta
objectMeta
=
new
ObjectMeta
();
DeploymentSpec
deploymentSpec
=
new
DeploymentSpec
();
// 设置metadata
Map
<
String
,
String
>
labels
=
new
HashMap
<>();
labels
.
put
(
"type"
,
serviceCreateVo
.
getLabel
()
);
labels
.
put
(
"type"
,
label
);
labels
.
put
(
"qcloud-app"
,
serviceName
);
objectMeta
.
setName
(
serviceName
);
objectMeta
.
setNamespace
(
namespace
);
...
...
@@ -250,7 +255,7 @@ public class TkeService {
ObjectMeta
templateObjectMeta
=
new
ObjectMeta
();
Map
<
String
,
String
>
templateLabels
=
new
HashMap
<>();
templateLabels
.
put
(
"qcloud-app"
,
serviceName
);
templateLabels
.
put
(
"type"
,
serviceCreateVo
.
getLabel
()
);
templateLabels
.
put
(
"type"
,
label
);
templateLabels
.
put
(
"mock"
,
mock
);
templateObjectMeta
.
setLabels
(
templateLabels
);
...
...
@@ -258,7 +263,7 @@ public class TkeService {
List
<
Container
>
containerList
=
new
ArrayList
<>();
Container
container
=
new
Container
();
container
.
setName
(
serviceName
);
container
.
setImage
(
"ccr.ccs.tencentyun.com/"
+
serviceCreateVo
.
getImage
()
);
container
.
setImage
(
"ccr.ccs.tencentyun.com/"
+
image
);
container
.
setImagePullPolicy
(
"IfNotPresent"
);
// volumeMounts
...
...
@@ -276,10 +281,10 @@ public class TkeService {
envVar1
.
setValue
(
namespace
);
EnvVar
envVar2
=
new
EnvVar
();
envVar2
.
setName
(
"NAMESPACECLUSTER"
);
envVar2
.
setValue
(
namespace
+
"@"
+
serviceCreateVo
.
getCluster
()
);
envVar2
.
setValue
(
namespace
+
"@"
+
cluster
);
EnvVar
envVar3
=
new
EnvVar
();
envVar3
.
setName
(
"CLUSTER"
);
envVar3
.
setValue
(
serviceCreateVo
.
getCluster
()
);
envVar3
.
setValue
(
cluster
);
EnvVar
envVar4
=
new
EnvVar
();
envVar4
.
setName
(
"CLUSTER"
);
envVar4
.
setValue
(
serviceName
);
...
...
@@ -288,7 +293,7 @@ public class TkeService {
envVar5
.
setValue
(
"192.168.4.50=>eos.quantgroups.com&172.17.1.7=>apollo-dev.quantgroups.com&172.20.3.11=>sentry.quantgroups.com&"
);
EnvVar
envVar6
=
new
EnvVar
();
envVar6
.
setName
(
"DEBUG"
);
envVar6
.
setValue
(
serviceCreateVo
.
getDebug
().
toString
()
);
envVar6
.
setValue
(
debug
);
EnvVar
envVar7
=
new
EnvVar
();
envVar7
.
setName
(
"MOCK"
);
envVar7
.
setValue
(
mock
);
...
...
@@ -391,7 +396,7 @@ public class TkeService {
deploymentSpec
.
setTemplate
(
podTemplateSpec
);
// deployment设置
deployment
.
setApiVersion
(
"apps/v1
beta1
"
);
deployment
.
setApiVersion
(
"apps/v1"
);
deployment
.
setKind
(
"Deployment"
);
deployment
.
setMetadata
(
objectMeta
);
deployment
.
setSpec
(
deploymentSpec
);
...
...
@@ -399,6 +404,21 @@ public class TkeService {
return
kubernetesClient
.
apps
().
deployments
().
inNamespace
(
namespace
).
create
(
deployment
);
}
/**
* 更新部署pod
* @param namespace 环境
* @param serviceName
* @param type
* @param image
* @return
*/
public
Deployment
updateDeployment
(
String
namespace
,
String
serviceName
,
String
type
,
String
image
)
{
// return kubernetesClient.apps().deployments().inNamespace(namespace).withName(serviceName).create();
return
null
;
}
public
static
void
main
(
String
[]
args
)
{
TkeService
tkeService
=
new
TkeService
();
// List<Service> serviceList = k8sService.kubernetesClient.services().inNamespace("fe").list().getItems();
...
...
@@ -419,7 +439,22 @@ public class TkeService {
// System.out.println(service);
// System.out.println(k8sService.resetPod("fe", "acm-ui-58864499d9-h47rl"));
tkeService
.
deleteService
(
"fe"
,
"kdsp"
);
// tkeService.deleteService("fe", "kdsp");
// ServiceCreateVo serviceCreateVo = new ServiceCreateVo();
// serviceCreateVo.setServiceName("gu-bei");
// serviceCreateVo.setNamespace("fe");
// serviceCreateVo.setCluster("qa");
// serviceCreateVo.setMock(0);
// serviceCreateVo.setDebug(0);
// serviceCreateVo.setLabel("java");
// serviceCreateVo.setImage("qa-test/gu-bei:master-20210707165716636");
// DockerProject dockerProject = new DockerProject();
// dockerProject.setCpuRequest("200");
// dockerProject.setMenRequest("500");
// dockerProject.setCpuLimit("2000");
// dockerProject.setMemLimit("1000");
// tkeService.createJavaDeployment(serviceCreateVo, dockerProject);
tkeService
.
updateDeployment
(
"fe"
,
"mo-clotho"
,
"java"
,
"qa-test/mo-clotho:master-20210707143546990"
);
}
}
src/main/java/cn/qg/holmes/service/k8s/impl/DockerProjectServiceImpl.java
0 → 100644
View file @
f1f798b9
package
cn
.
qg
.
holmes
.
service
.
k8s
.
impl
;
import
cn.qg.holmes.entity.k8s.DockerProject
;
import
cn.qg.holmes.mapper.k8s.DockerProjectMapper
;
import
cn.qg.holmes.service.k8s.DockerProjectService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
@Service
public
class
DockerProjectServiceImpl
extends
ServiceImpl
<
DockerProjectMapper
,
DockerProject
>
implements
DockerProjectService
{
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment