Commit 1dfcd4f0 authored by 智勇's avatar 智勇

获取pod hostIP

parent f638d63c
...@@ -6,6 +6,7 @@ const logger = require('koa-log4').getLogger() ...@@ -6,6 +6,7 @@ const logger = require('koa-log4').getLogger()
const templates = require('../serviceTemplate') const templates = require('../serviceTemplate')
const lruCache = require('../services/lruCache.service') const lruCache = require('../services/lruCache.service')
const { ingressCreate, ingressDelete } = require('../kubeService/ingress') const { ingressCreate, ingressDelete } = require('../kubeService/ingress')
const { podGet } = require('../kubeService/service')
const router = new Router() const router = new Router()
module.exports = router module.exports = router
...@@ -22,11 +23,16 @@ router.get('/', async (ctx) => { ...@@ -22,11 +23,16 @@ router.get('/', async (ctx) => {
} }
const data = await ctx.cluster.service_list(ctx.query.namespace) const data = await ctx.cluster.service_list(ctx.query.namespace)
const podData = await podGet(ctx.query.namespace)
const getDetail = async (item) => { const getDetail = async (item) => {
const resData = await ctx.cluster.service_get(item.serviceName, ctx.query.namespace) const resData = await ctx.cluster.service_get(item.serviceName, ctx.query.namespace)
item.image = resData.service.containers[0].image item.image = resData.service.containers[0].image
if (item.userLabels.type === 'base') { if (item.userLabels.type === 'base') {
item.portMappings = resData.service.portMappings item.portMappings = resData.service.portMappings
const pod = podData.body.items.filter(i => i.metadata.name.indexOf(item.serviceName) !== -1)
lanIp = pod[0].status.hostIP
item.lanIp = lanIp item.lanIp = lanIp
} }
} }
...@@ -64,7 +70,7 @@ const createService = async (ctx) => { ...@@ -64,7 +70,7 @@ const createService = async (ctx) => {
memory: { memory: {
request: 100, request: 100,
limit: 1024, limit: 1024,
} },
} }
const special = ['xyqb', 'xyqb-user2'] const special = ['xyqb', 'xyqb-user2']
...@@ -74,7 +80,7 @@ const createService = async (ctx) => { ...@@ -74,7 +80,7 @@ const createService = async (ctx) => {
} }
const template = templates[type].replace(/{{([A-Za-z0-9_\.]+)}}/g, function () { const template = templates[type].replace(/{{([A-Za-z0-9_\.]+)}}/g, function () {
console.log( arguments[1]) console.log(arguments[1])
if (_.get(data, arguments[1], null) === null) { if (_.get(data, arguments[1], null) === null) {
throw new Error(`缺少模板所需变量: ${arguments[1]}`) throw new Error(`缺少模板所需变量: ${arguments[1]}`)
} }
......
const path = require('path')
const Client = require('kubernetes-client').Client
const config = require('kubernetes-client').config
const client = new Client({
config: config.fromKubeconfig(
path.resolve(__dirname, './kubeConfig.yaml'),
),
version: '1.10',
})
const serviceGet = async (namespace, serviceName) => client.api.v1.namespaces(namespace).services(serviceName).get()
const podGet = async namespace => client.api.v1.namespaces(namespace).pods.get()
module.exports = {
serviceGet,
podGet,
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment