Commit d1d80b30 authored by 智勇's avatar 智勇

Merge branch 'kewei' into 'master'

Kewei



See merge request !5
parents 4388d105 edfc8dd7
......@@ -14,15 +14,13 @@ const tag = require('./tag')
const commonServiceRoute = require('./commonService')
const ingressRoute = require('./ingress')
const cluster = require('../services/tke.clusterService').create()
const container = require('../services/tke.containerService').create()
const logFormat = ':req[x-real-ip] :req[x-forwarded-for] - -'
+ ' ":method :url HTTP/:http-version"'
+ ' :status :content-length ":referrer"'
+ ' ":user-agent" :req[x-auth-token] :response-time'
+ 'ms';
+ ' ":user-agent" :req[x-auth-token] :response-timems'
const cluster = require('../services/tke.clusterService').create()
const container = require('../services/tke.containerService').create()
const logger = log4js.getLogger()
log4js.configure(logConf.devlog)
......
const Router = require('koa-router')
const { ingressGet, ingressUpdate } = require('../kubeService/ingress')
const router = new Router();
module.exports = router
router.get('/', async (ctx) => {
const data = await ctx.client.ingress_get(ctx.query.namespace)
// const data = await ctx.cluster.ingress_get(ctx.query.namespace)
const data = await ingressGet(ctx.query.namespace, ctx.query.serviceName)
ctx.body = ctx.ok(data)
})
......@@ -13,27 +15,30 @@ namespace
rules
*/
router.post('/modify', async (ctx) => {
const ingress = await ctx.client.ingress_get(ctx.request.body.namespace)
if (!ingress) {
ctx.body = ctx.fail('namespace下没有ingress,请先创建')
return ctx.body
}
console.log(1, ingress)
// let data = await ctx.client.ingress_modify()
ctx.body = ctx.ok(ingress)
const data = await ingressUpdate(ctx.request.body.namespace, ctx.request.body.serviceName, ctx.request.body.host)
ctx.body = ctx.ok(data)
})
// router.post('/modify', async (ctx) => {
// const ingress = await ctx.cluster.ingress_get(ctx.request.body.namespace)
// if (!ingress) {
// ctx.body = ctx.fail('namespace下没有ingress,请先创建')
// return ctx.body
// }
// const data = await ctx.cluster.ingress_modify(ctx.request.body.ingressName, ctx.request.body.namespace, rules)
// ctx.body = ctx.ok(data)
// })
router.post('/create', async (ctx) => {
const ingress = await ctx.client.ingress_get(ctx.request.body.namespace)
const ingress = await ctx.cluster.ingress_get(ctx.request.body.namespace)
if (ingress) {
ctx.body = ctx.fail('namespace下已存在ingress')
return ctx.body
}
await ctx.client.ingress_create(ctx.request.body.namespace)
await ctx.cluster.ingress_create(ctx.request.body.namespace)
ctx.body = ctx.ok()
})
router.post('/delete', async (ctx) => {
await ctx.client.ingress_delete(ctx.request.body.ingressName, ctx.request.body.namespace)
await ctx.cluster.ingress_delete(ctx.request.body.ingressName, ctx.request.body.namespace)
ctx.body = ctx.ok()
})
const Router = require('koa-router')
const logger = require('koa-log4').getLogger('router:namespace');
const router = new Router();
module.exports = router
router.get('/', async (ctx) => {
logger.info('hello')
const data = await ctx.cluster.namespace_get()
ctx.body = ctx.ok(data)
})
......
......@@ -2,6 +2,7 @@
const Router = require('koa-router')
const yaml = require('js-yaml')
const templates = require('../serviceTemplate')
const { ingressCreate, ingressDelete } = require('../kubeService/ingress')
const TYPES = ['ui', 'java', 'node', 'python', 'go']
......@@ -41,6 +42,7 @@ router.post('/create', async (ctx) => {
})
const params = yaml.load(template)
await ctx.cluster.service_create(params, type)
await ingressCreate(namespace, serviceName)
ctx.body = ctx.ok('创建成功')
})
router.post('/details', async (ctx) => {
......@@ -48,6 +50,7 @@ router.post('/details', async (ctx) => {
ctx.body = ctx.ok(data)
})
router.post('/delete', async (ctx) => {
await ingressDelete(ctx.request.body.namespace, ctx.request.body.serviceName)
await ctx.cluster.service_delete(ctx.request.body.serviceName, ctx.request.body.namespace)
ctx.body = ctx.ok('删除成功')
})
......
const Client = require('kubernetes-client').Client
const config = require('kubernetes-client').config
const client = new Client({ config: config.fromKubeconfig(), version: '1.9' })
const getManifest = (namespace, servicename) => ({
apiVersion: 'extensions/v1beta1',
kind: 'Ingress',
metadata: {
name: servicename,
namespace,
annotations: {
'kubernetes.io/ingress.class': 'traefik',
},
},
spec: {
rules: [
{
host: `${servicename}-${namespace}.liangkebang.net`,
http: {
paths: [
{
path: '/',
backend: {
serviceName: `${servicename}`,
servicePort: 80,
},
},
],
},
},
],
},
})
const ingressGet = async (namespace, servicename) => client.apis.extensions.v1beta1.namespaces(namespace)
.ingresses(servicename).get()
const ingressCreate = async (namespace, servicename) => {
const Manifest = getManifest(namespace, servicename)
await client.apis.extensions.v1beta1.namespace(namespace).ingresses
.post({ body: Manifest })
}
const ingressUpdate = async (namespace, servicename, host) => {
const Manifest = getManifest(namespace, servicename)
Manifest.spec.rules[0].host = host
await client.apis.extensions.v1beta1.namespace(namespace).ingresses(servicename)
.patch({ body: Manifest })
}
const ingressDelete = async (namespace, servicename) => {
await client.apis.extensions.v1beta1.namespaces(namespace).ingresses(servicename).delete()
}
module.exports = {
ingressGet,
ingressCreate,
ingressUpdate,
ingressDelete,
}
This diff is collapsed.
......@@ -81,9 +81,10 @@ class Cluster extends Client {
}
ingress_modify(ingressName, namespace, rules) {
return this.post('MosifyIngress', {
ingressName, namespace, ...rules, clusterId: this.clusterId,
})
rules.ingressName = ingressName
rules.namespace = namespace
rules.clusterId = this.clusterId
return this.post('MosifyIngress', rules)
}
}
......
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