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

qke功能

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