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
d4bd082b
Commit
d4bd082b
authored
Jun 17, 2019
by
智勇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
listEnvVars
parent
a836920d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
11 deletions
+45
-11
service.js
app/service.js
+32
-3
service.js
kubeService/service.js
+13
-8
No files found.
app/service.js
View file @
d4bd082b
const
Router
=
require
(
'
koa-router
'
)
const
logger
=
require
(
'
koa-log4
'
).
getLogger
()
const
_
=
require
(
'
lodash
'
)
const
{
ingressCreate
,
ingressDelete
}
=
require
(
'
../kubeService/ingress
'
)
const
{
projectConfig
,
defaultConfig
}
=
require
(
'
../serviceTemplate/resourceLimit
'
)
const
{
getPods
,
serviceCreate
,
getServicesFormat
,
getServices
,
getServiceDetail
,
serviceRestart
,
...
...
@@ -19,7 +21,7 @@ const router = new Router()
module
.
exports
=
router
router
.
get
(
'
/
'
,
async
(
ctx
)
=>
{
const
data
=
await
getServices
(
ctx
.
query
.
namespace
)
const
data
=
await
getServices
Format
(
ctx
.
query
.
namespace
)
ctx
.
body
=
ctx
.
ok
({
services
:
data
})
})
...
...
@@ -68,7 +70,6 @@ router.post('/delete', async (ctx) => {
const
{
namespace
,
serviceName
}
=
ctx
.
request
.
body
await
serviceDelete
(
namespace
,
serviceName
)
// const rsName = ctx.request.body.podName.slice(0, -6)
let
rsData
=
await
getReplicaSet
(
namespace
)
rsData
=
rsData
.
map
(
item
=>
item
.
metadata
.
name
).
filter
(
item
=>
item
.
indexOf
(
serviceName
)
!==
-
1
)
for
(
const
rs
of
rsData
)
{
...
...
@@ -84,7 +85,7 @@ router.post('/delete', async (ctx) => {
router
.
post
(
'
/modifyImage
'
,
async
(
ctx
)
=>
{
let
list
=
await
getPods
(
ctx
.
request
.
body
.
namespace
)
list
=
list
.
map
(
item
=>
(
item
.
metadata
.
labels
&&
item
.
metadata
.
labels
[
'
qcloud-app
'
])
||
item
.
metadata
.
name
)
list
=
list
.
body
.
items
.
map
(
item
=>
(
item
.
metadata
.
labels
&&
item
.
metadata
.
labels
[
'
qcloud-app
'
])
||
item
.
metadata
.
name
)
if
(
list
.
includes
(
ctx
.
request
.
body
.
serviceName
))
{
logger
.
info
(
'
更新服务
'
,
ctx
.
request
.
body
)
...
...
@@ -109,3 +110,31 @@ router.post('/redeploy', async (ctx) => {
await
serviceRestart
(
ctx
.
request
.
body
.
namespace
,
ctx
.
request
.
body
.
podName
)
ctx
.
body
=
ctx
.
ok
(
'
重置服务成功
'
)
})
router
.
get
(
'
/listEnvVars
'
,
async
(
ctx
)
=>
{
const
envVars
=
{}
const
res
=
await
Promise
.
all
([
getPods
(
ctx
.
request
.
query
.
namespace
),
getServices
(
ctx
.
request
.
query
.
namespace
),
])
res
[
0
].
body
.
items
.
forEach
(
async
(
item
)
=>
{
const
serviceName
=
(
item
.
metadata
.
labels
&&
item
.
metadata
.
labels
[
'
qcloud-app
'
])
||
item
.
metadata
.
name
const
upperCaseName
=
serviceName
.
toUpperCase
().
replace
(
/-/g
,
'
_
'
)
envVars
[
`
${
upperCaseName
}
_SERVICE_HOST`
]
=
item
.
status
.
hostIP
})
res
[
1
].
body
.
items
.
forEach
(
async
(
item
)
=>
{
const
upperCaseName
=
item
.
metadata
.
name
.
toUpperCase
().
replace
(
/-/g
,
'
_
'
)
envVars
[
`
${
upperCaseName
}
_SERVICE_PORT`
]
=
_
.
get
(
item
.
spec
.
ports
,
'
[0].nodePort
'
,
undefined
)
item
.
spec
.
ports
.
forEach
((
i
)
=>
{
envVars
[
`
${
upperCaseName
}
_SERVICE_PORT_
${
i
.
port
}
`
]
=
i
.
nodePort
||
i
.
port
})
})
envVars
.
DB_SERVICE_HOST
=
envVars
.
MYSQL_SERVICE_HOST
envVars
.
DB_SERVICE_PORT
=
envVars
.
MYSQL_SERVICE_PORT
envVars
.
DB_SERVICE_PORT_3306
=
envVars
.
MYSQL_SERVICE_PORT_3306
ctx
.
body
=
{
details
:
envVars
,
success
:
'
true
'
}
})
kubeService/service.js
View file @
d4bd082b
...
...
@@ -101,7 +101,6 @@ const formatServiceInfo = (obj) => {
clusterIp
:
obj
.
spec
.
clusterIP
,
serviceType
:
obj
.
spec
.
type
,
portMappings
:
obj
.
spec
.
ports
,
// labels: obj.metadata.labels,
})
}
...
...
@@ -157,13 +156,13 @@ const formatPodInfo = (podInfo) => {
const
formatIngressInfo
=
obj
=>
({
host
:
_
.
get
(
obj
.
spec
,
'
rules[0].host
'
,
''
)
})
const
getPods
=
async
(
namespace
)
=>
{
const
podD
ata
=
await
client
.
api
.
v1
.
namespaces
(
namespace
).
pods
.
get
()
return
podData
.
body
.
items
const
d
ata
=
await
client
.
api
.
v1
.
namespaces
(
namespace
).
pods
.
get
()
return
data
}
const
podGetstatus
=
async
()
=>
client
.
api
.
v1
.
pods
.
get
()
const
getServices
=
async
(
namespace
)
=>
{
const
getServices
Format
=
async
(
namespace
)
=>
{
const
ret
=
[]
const
service
=
{}
...
...
@@ -202,7 +201,7 @@ const getServices = async (namespace) => {
const
getServiceDetail
=
async
(
namespace
,
name
)
=>
{
const
res
=
await
Promise
.
all
([
client
.
api
.
v1
.
namespaces
(
namespace
).
pods
.
get
(
{
qs
:
{
labelSelector
:
`qcloud-app=
${
name
}
,tier!=job`
}
}
),
client
.
api
.
v1
.
namespaces
(
namespace
).
pods
.
get
(),
client
.
api
.
v1
.
namespaces
(
namespace
).
services
(
name
).
get
(),
])
...
...
@@ -210,11 +209,11 @@ const getServiceDetail = async (namespace, name) => {
res
[
1
]
=
formatServiceInfo
(
res
[
1
].
body
)
if
(
!
dict
.
commonService
.
includes
(
name
))
{
res
[
3
]
=
await
client
.
apis
.
extensions
.
v1beta1
.
namespaces
(
namespace
).
ingresses
(
name
).
get
()
res
[
3
]
=
formatIngressInfo
(
res
[
3
].
body
)
res
[
2
]
=
await
client
.
apis
.
extensions
.
v1beta1
.
namespaces
(
namespace
).
ingresses
(
name
).
get
()
res
[
2
]
=
formatIngressInfo
(
res
[
2
].
body
)
}
return
_
.
assign
({},
res
[
0
],
res
[
3
],
res
[
1
])
return
_
.
assign
({},
res
[
0
],
res
[
1
],
res
[
2
])
}
const
serviceRestart
=
async
(
namespace
,
name
)
=>
{
...
...
@@ -235,8 +234,14 @@ const replicaSetDelete = async (namespace, rsName) => {
await
client
.
apis
.
apps
.
v1
.
namespaces
(
namespace
).
replicasets
(
rsName
).
delete
()
}
const
getServices
=
async
(
namespace
)
=>
{
const
data
=
await
client
.
api
.
v1
.
namespaces
(
namespace
).
services
.
get
()
return
data
}
module
.
exports
=
{
getServiceDetail
,
getServicesFormat
,
getServices
,
getPods
,
podGetstatus
,
...
...
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