Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tke-eos
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
tke-eos
Commits
92b2c389
Commit
92b2c389
authored
Jan 21, 2019
by
xuezj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加rabbitmq
parent
8bb13b47
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
99 additions
and
47 deletions
+99
-47
baseService.js
app/baseService.js
+56
-0
index.js
app/index.js
+2
-0
service.js
app/service.js
+5
-6
package.json
package.json
+1
-1
index.js
serviceTemplate/index.js
+3
-3
rabbitmq.template.txt
serviceTemplate/rabbitmq.template.txt
+27
-0
ui.template.txt
serviceTemplate/ui.template.txt
+0
-1
tke.service.js
services/tke.service.js
+5
-36
No files found.
app/baseService.js
0 → 100644
View file @
92b2c389
const
Router
=
require
(
'
koa-router
'
)
const
bodyParser
=
require
(
'
koa-bodyparser
'
);
const
yaml
=
require
(
'
js-yaml
'
)
const
templates
=
require
(
'
../serviceTemplate
'
)
const
client
=
require
(
'
../services/tke.service
'
).
create
({
secretId
:
'
AKID4rY7wwNphsUcaFsy1pRtKhQvDj4CA3Ac
'
,
secretKey
:
'
YBduRnjgVRGzmagZJbss3Vo58wWCyhgc
'
,
clusterId
:
'
cls-acfx4pvj
'
,
region
:
'
ap-beijing
'
})
const
TYPES
=
[
'
rabbitmq
'
]
const
IMAGES
=
{
rabbitmq
:
[
'
rabbitmq:3.6-management
'
]
}
const
router
=
new
Router
();
module
.
exports
=
router
router
.
use
(
async
(
ctx
,
next
)
=>
{
ctx
.
k8s
=
client
await
next
()
},
bodyParser
())
router
.
post
(
'
/rabbitmq/create
'
,
async
ctx
=>
{
try
{
let
svc
=
await
client
.
service_get
(
serviceName
,
namespace
)
if
(
svc
)
{
return
ctx
.
body
=
ctx
.
fail
(
'
服务已经存在
'
)
}
}
catch
(
e
)
{
}
let
data
=
{
namespace
:
ctx
.
request
.
body
.
namespace
,
image
:
IMAGES
.
rabbitmq
[
0
]
}
let
template
=
templates
[
'
rabbitmq
'
].
replace
(
/{{
([
A-Za-z0-9_
]
+
)
}}/g
,
function
()
{
if
(
data
[
arguments
[
1
]]
===
undefined
)
{
throw
new
Error
(
'
缺少模板所需变量
'
)
}
return
data
[
arguments
[
1
]]
})
let
params
=
yaml
.
load
(
template
)
console
.
log
(
params
)
await
client
.
service_create
(
params
)
ctx
.
body
=
ctx
.
ok
(
'
创建成功
'
)
})
router
.
post
(
'
/rabbitmq/delete
'
,
async
ctx
=>
{
await
client
.
service_delete
(
'
rabbitmq
'
,
ctx
.
request
.
body
.
namespace
)
ctx
.
body
=
ctx
.
ok
(
'
删除成功
'
)
})
app/index.js
View file @
92b2c389
...
@@ -6,6 +6,7 @@ const result = require('../middleware/result')
...
@@ -6,6 +6,7 @@ const result = require('../middleware/result')
const
namespaceRoute
=
require
(
'
./namespace
'
)
const
namespaceRoute
=
require
(
'
./namespace
'
)
const
serviceRoute
=
require
(
'
./service
'
)
const
serviceRoute
=
require
(
'
./service
'
)
const
baseServiceRoute
=
require
(
'
./baseService
'
)
function
loadRoutes
(
router
)
{
function
loadRoutes
(
router
)
{
router
router
...
@@ -13,6 +14,7 @@ function loadRoutes (router) {
...
@@ -13,6 +14,7 @@ function loadRoutes (router) {
.
use
(
result
())
.
use
(
result
())
.
use
(
'
/namespace
'
,
namespaceRoute
.
routes
())
.
use
(
'
/namespace
'
,
namespaceRoute
.
routes
())
.
use
(
'
/service
'
,
serviceRoute
.
routes
())
.
use
(
'
/service
'
,
serviceRoute
.
routes
())
.
use
(
'
/baseService
'
,
baseServiceRoute
.
routes
())
}
}
exports
.
start
=
function
()
{
exports
.
start
=
function
()
{
...
...
app/service.js
View file @
92b2c389
...
@@ -56,18 +56,17 @@ router.post('/create', async ctx => {
...
@@ -56,18 +56,17 @@ router.post('/create', async ctx => {
return
data
[
arguments
[
1
]]
return
data
[
arguments
[
1
]]
})
})
let
params
=
yaml
.
load
(
template
)
let
params
=
yaml
.
load
(
template
)
console
.
log
(
params
)
await
client
.
service_create
(
params
)
await
client
.
service_create
(
params
)
ctx
.
body
=
ctx
.
ok
(
params
)
ctx
.
body
=
ctx
.
ok
(
'
创建成功
'
)
})
})
router
.
post
(
'
/delete
'
,
async
ctx
=>
{
router
.
post
(
'
/delete
'
,
async
ctx
=>
{
let
data
=
await
client
.
service_delete
(
ctx
.
request
.
body
.
serviceName
,
ctx
.
request
.
body
.
namespace
)
await
client
.
service_delete
(
ctx
.
request
.
body
.
serviceName
,
ctx
.
request
.
body
.
namespace
)
ctx
.
body
=
ctx
.
ok
(
data
)
ctx
.
body
=
ctx
.
ok
(
'
删除成功
'
)
})
})
router
.
post
(
'
/modifyImage
'
,
async
ctx
=>
{
router
.
post
(
'
/modifyImage
'
,
async
ctx
=>
{
let
data
=
await
client
.
service_modifyImage
(
ctx
.
request
.
body
.
serviceName
,
ctx
.
request
.
body
.
image
,
ctx
.
request
.
body
.
namespace
)
await
client
.
service_modifyImage
(
ctx
.
request
.
body
.
serviceName
,
ctx
.
request
.
body
.
image
,
ctx
.
request
.
body
.
namespace
)
ctx
.
body
=
ctx
.
ok
(
data
)
ctx
.
body
=
ctx
.
ok
(
'
更新成功
'
)
})
})
package.json
View file @
92b2c389
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
"devDependencies"
:
{},
"devDependencies"
:
{},
"scripts"
:
{
"scripts"
:
{
"test"
:
"echo
\"
Error: no test specified
\"
&& exit 1"
,
"test"
:
"echo
\"
Error: no test specified
\"
&& exit 1"
,
"start"
:
"NODE_DEBUG nodemon"
"start"
:
"NODE_DEBUG
=request
nodemon"
},
},
"repository"
:
{
"repository"
:
{
"type"
:
"git"
,
"type"
:
"git"
,
...
...
serviceTemplate/index.js
View file @
92b2c389
const
fs
=
require
(
'
fs
'
)
const
fs
=
require
(
'
fs
'
)
console
.
log
(
process
.
cwd
())
const
ui
=
fs
.
readFileSync
(
'
serviceTemplate/ui.template.txt
'
,
'
utf8
'
)
const
ui
=
fs
.
readFileSync
(
'
serviceTemplate/ui.template.txt
'
,
'
utf8
'
)
const
rabbitmq
=
fs
.
readFileSync
(
'
serviceTemplate/rabbitmq.template.txt
'
,
'
utf8
'
)
module
.
exports
=
{
module
.
exports
=
{
ui
ui
,
rabbitmq
}
}
\ No newline at end of file
serviceTemplate/rabbitmq.template.txt
0 → 100644
View file @
92b2c389
serviceName: rabbitmq
namespace: {{namespace}}
replicas: 1
accessType: ClusterIP
portMappings.0.protocol: TCP
portMappings.0.lbPort: 5672
portMappings.0.containerPort: 5672
portMappings.1.protocol: TCP
portMappings.1.lbPort: 15672
portMappings.1.containerPort: 15672
containers.0.containerName: rabbitmq
containers.0.image: {{image}}
containers.0.volumeMounts.0.volumeName: rabbitmq-vol
containers.0.volumeMounts.0.mountPath: /var/lib/rabbitmq
containers.0.volumeMounts.0.mode: rw
containers.0.envs.0.name: RABBITMQ_DEFAULT_USER
containers.0.envs.0.value: qa
containers.0.envs.1.name: RABBITMQ_DEFAULT_PASS
containers.0.envs.1.value: qatest
volumes.0.name: rabbitmq-vol
volumes.0.volumeType: hostPath
volumes.0.hostPath: /var/lib/data/rabbitmq/{{namespace}}
\ No newline at end of file
serviceTemplate/ui.template.txt
View file @
92b2c389
serviceName: {{serviceName}}
serviceName: {{serviceName}}
namespace: {{namespace}}
namespace: {{namespace}}
replicas: 1
replicas: 1
revisionHistoryLimit: 2
accessType: ClusterIP
accessType: ClusterIP
portMappings.0.protocol: TCP
portMappings.0.protocol: TCP
...
...
services/tke.service.js
View file @
92b2c389
...
@@ -80,35 +80,6 @@ class Client {
...
@@ -80,35 +80,6 @@ class Client {
})
})
}
}
doGet
(
action
,
params
=
{})
{
if
(
params
.
namespace
&&
this
.
ReservedNamespace
.
includes
(
params
.
namespace
))
{
return
Promise
.
reject
(
new
Error
(
'
未授权的namespace
'
))
}
this
.
formatRequestData
(
action
,
params
)
let
url
=
this
.
protocal
+
this
.
endpoint
+
this
.
path
let
self
=
this
return
new
Promise
(
function
(
resolve
,
reject
)
{
request
({
method
:
'
GET
'
,
url
,
json
:
true
,
qs
:
params
},
function
(
err
,
res
,
body
)
{
if
(
err
)
{
console
.
error
(
err
)
reject
(
err
)
}
else
{
if
(
body
.
code
===
0
)
{
resolve
(
body
.
data
)
}
else
{
reject
(
body
)
}
}
})
})
}
namespace_get
()
{
namespace_get
()
{
return
this
.
post
(
'
DescribeClusterNameSpaces
'
,
{
clusterId
:
this
.
clusterId
})
return
this
.
post
(
'
DescribeClusterNameSpaces
'
,
{
clusterId
:
this
.
clusterId
})
}
}
...
@@ -130,14 +101,12 @@ class Client {
...
@@ -130,14 +101,12 @@ class Client {
}
}
async
service_create
(
params
)
{
async
service_create
(
params
)
{
await
this
.
post
(
'
CreateClusterService
'
,
{
clusterId
:
this
.
clusterId
,
...
params
})
params
.
clusterId
=
this
.
clusterId
let
str
=
JSON
.
stringify
(
params
)
await
this
.
post
(
'
CreateClusterService
'
,
params
)
// 腾讯云api暂只能通过修改服务来改成Recreate策略
// 腾讯云api暂只能通过修改服务来改成Recreate策略
let
modifyParams
=
{
let
modifyParams
=
JSON
.
parse
(
str
)
clusterId
:
this
.
clusterId
,
modifyParams
.
strategy
=
'
Recreate
'
serviceName
:
params
.
serviceName
,
namespace
:
params
.
namespace
,
strategy
:
'
Reacreate
'
}
return
this
.
post
(
'
ModifyClusterService
'
,
modifyParams
)
return
this
.
post
(
'
ModifyClusterService
'
,
modifyParams
)
}
}
...
...
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