Commit 9a68e2c1 authored by kewei.jia's avatar kewei.jia Committed by 智勇

qke功能

parent d60ce6db
......@@ -20,6 +20,7 @@ const {
replicaSetDelete,
pvcDelete,
} = require('../kubeService/service')
const newClient = require('./../resource/getClient')
const router = new Router()
module.exports = router
......@@ -49,7 +50,7 @@ const createService = async (ctx) => {
data.resources = resources
logger.info('创建服务', data)
await serviceCreate(ctx.client, data)
await serviceCreate(ctx.cluster, ctx.client, data)
if (label !== 'base') {
if (serviceName === 'xyqb-user2') {
await ingressCreate(ctx.client, namespace, 'xyqb-user2-2', 'passportapi2')
......@@ -175,9 +176,10 @@ router.get('/listEnvVars', async (ctx) => {
// for container
router.get('/listEnvVarsNew', async (ctx) => {
const envVars = {}
const { namespace, client } = newClient(ctx)
const res = await Promise.all([
getPods(ctx.client, ctx.request.query.namespace),
getServices(ctx.client, ctx.request.query.namespace),
getPods(client, namespace),
getServices(client, namespace),
])
res[0].body.items.forEach(async (item) => {
......
......@@ -73,7 +73,8 @@ const makeManifest = (data) => {
return manifestArray
}
const serviceCreate = async (client, data) => {
const serviceCreate = async (cluster, client, data) => {
data.cluster = cluster
const { namespace, serviceName } = data
const manifestArray = makeManifest(data)
......
......@@ -5,6 +5,10 @@ const config = require('kubernetes-client').config
module.exports = function client() {
const client = {}
return async function (ctx, next) {
const exclude = ['/service/listEnvVarsNew']
if (exclude.includes(ctx.path)) {
await next()
} else {
const cluster = ctx.request.headers.cluster
let yaml = ''
switch (cluster) {
......@@ -31,8 +35,11 @@ module.exports = function client() {
),
version: '1.10',
})
client.clusterName = cluster
}
ctx.client = client[cluster]
ctx.cluster = client.clusterName
await next()
}
}
}
const path = require('path')
const Client = require('kubernetes-client').Client
const config = require('kubernetes-client').config
const newClient = function client(ctx) {
const parmars = ctx.request.query.namespace || ''
if (parmars.search('@') === -1) {
ctx.body = {
code: '0001',
msg: '参数传入不合法',
}
return false
}
const namespace = parmars.split('@')[0];
const cluster = parmars.split('@')[1]
let yaml = ''
switch (cluster) {
case 'qa':
yaml = './../kubeService/kubeConfig-qa.yaml'
break;
case 'dev-ops':
yaml = './../kubeService/kubeConfig-dev-ops.yaml'
break
case 'qke':
yaml = './../kubeService/kubeConfig-qke.yaml'
break
default:
ctx.body = {
code: '0001',
msg: '请选择集群的名字',
}
}
const client = new Client({
config: config.fromKubeconfig(
path.resolve(__dirname, yaml),
),
version: '1.10',
})
return { namespace, client }
}
module.exports = newClient
......@@ -52,6 +52,10 @@ spec:
env:
- name: NAMESPACE
value: {{namespace}}
- name: NAMESPACECLUSTER
value: {{namespace}}@{{cluster}}
- name: CLUSTER
value: {{cluster}}
- name: SYSTEM_NAME
value: {{serviceName}}
- name: DEBUG
......
......@@ -21,12 +21,12 @@ metadata:
name: {{serviceName}}-{{namespace}}
namespace: {{namespace}}
spec:
storageClassName: cbs-3
storageClassName: cbs
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storage: 1Gi
---
......@@ -82,8 +82,6 @@ spec:
volumeMounts:
- mountPath: "/var/lib/mysql"
name: {{serviceName}}
nodeSelector:
zone: "3"
volumes:
- name: {{serviceName}}
persistentVolumeClaim:
......
......@@ -20,8 +20,6 @@ spec:
type: base
qcloud-app: {{serviceName}}
spec:
nodeSelector:
zone: "3"
containers:
- image: ccr.ccs.tencentyun.com/{{image}}
imagePullPolicy: Always
......
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