Commit 3a197e04 authored by kewei.jia's avatar kewei.jia Committed by 智勇

添加QKE 功能支持

parent 4f2831c2
...@@ -20,7 +20,7 @@ const { ...@@ -20,7 +20,7 @@ const {
replicaSetDelete, replicaSetDelete,
pvcDelete, pvcDelete,
} = require('../kubeService/service') } = require('../kubeService/service')
const newClient = require('./../resource/getClient') const getClient = require('./../resource/getClient')
const router = new Router() const router = new Router()
module.exports = router module.exports = router
...@@ -174,12 +174,26 @@ router.get('/listEnvVars', async (ctx) => { ...@@ -174,12 +174,26 @@ router.get('/listEnvVars', async (ctx) => {
}) })
// for container // for container
const clientNew = {}
router.get('/listEnvVarsNew', async (ctx) => { router.get('/listEnvVarsNew', async (ctx) => {
const envVars = {} const envVars = {}
const { namespace, client } = newClient(ctx) let cluster;
let namespace;
const parmars = ctx.request.query.namespace || ''
if (parmars.search('@') === -1) {
cluster = 'qa'
namespace = ctx.request.query.namespace
} else {
namespace = parmars.split('@')[0];
cluster = parmars.split('@')[1]
}
if (!clientNew[cluster]) {
console.log('为空')
clientNew[cluster] = getClient(cluster)
}
const res = await Promise.all([ const res = await Promise.all([
getPods(client, namespace), getPods(clientNew[cluster], namespace),
getServices(client, namespace), getServices(clientNew[cluster], namespace),
]) ])
res[0].body.items.forEach(async (item) => { res[0].body.items.forEach(async (item) => {
......
...@@ -2,17 +2,7 @@ const path = require('path') ...@@ -2,17 +2,7 @@ const path = require('path')
const Client = require('kubernetes-client').Client const Client = require('kubernetes-client').Client
const config = require('kubernetes-client').config const config = require('kubernetes-client').config
const newClient = function client(ctx) { module.exports = function getClient(cluster) {
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 = '' let yaml = ''
switch (cluster) { switch (cluster) {
case 'qa': case 'qa':
...@@ -25,17 +15,12 @@ const newClient = function client(ctx) { ...@@ -25,17 +15,12 @@ const newClient = function client(ctx) {
yaml = './../kubeService/kubeConfig-qke.yaml' yaml = './../kubeService/kubeConfig-qke.yaml'
break break
default: default:
ctx.body = { throw Error('未获取到Client')
code: '0001',
msg: '请选择集群的名字',
}
} }
const client = new Client({ return new Client({
config: config.fromKubeconfig( config: config.fromKubeconfig(
path.resolve(__dirname, yaml), path.resolve(__dirname, yaml),
), ),
version: '1.10', version: '1.10',
}) })
return { namespace, client }
} }
module.exports = newClient
...@@ -9,7 +9,7 @@ metadata: ...@@ -9,7 +9,7 @@ metadata:
spec: spec:
type: NodePort type: NodePort
ports: ports:
- port: 3306 - port: 3306
selector: selector:
qcloud-app: {{serviceName}} qcloud-app: {{serviceName}}
...@@ -21,12 +21,12 @@ metadata: ...@@ -21,12 +21,12 @@ metadata:
name: {{serviceName}}-{{namespace}} name: {{serviceName}}-{{namespace}}
namespace: {{namespace}} namespace: {{namespace}}
spec: spec:
storageClassName: cbs storageClassName: cbs-3
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
requests: requests:
storage: 1Gi storage: 20Gi
--- ---
...@@ -53,42 +53,44 @@ spec: ...@@ -53,42 +53,44 @@ spec:
type: base type: base
spec: spec:
containers: containers:
- image: ccr.ccs.tencentyun.com/{{image}} - image: ccr.ccs.tencentyun.com/{{image}}
imagePullPolicy: Always imagePullPolicy: Always
name: {{serviceName}} name: {{serviceName}}
resources: resources:
requests: requests:
cpu: {{resources.cpu.request}}m cpu: {{resources.cpu.request}}m
memory: {{resources.memory.request}}Mi memory: {{resources.memory.request}}Mi
limits: limits:
cpu: {{resources.cpu.limit}}m cpu: {{resources.cpu.limit}}m
memory: {{resources.memory.limit}}Mi memory: {{resources.memory.limit}}Mi
env: env:
- name: MYSQL_DATABASE - name: MYSQL_DATABASE
value: db value: db
- name: MYSQL_PASSWORD - name: MYSQL_PASSWORD
value: qatest value: qatest
- name: MYSQL_ROOT_PASSWORD - name: MYSQL_ROOT_PASSWORD
value: Quantgroup2017 value: Quantgroup2017
- name: MYSQL_USER - name: MYSQL_USER
value: qa value: qa
readinessProbe: readinessProbe:
exec: exec:
command: ["mysql", "-uqa", "-pqatest", "-e", "SELECT 1"] command: ["mysql", "-uqa", "-pqatest", "-e", "SELECT 1"]
initialDelaySeconds: 5 initialDelaySeconds: 5
periodSeconds: 2 periodSeconds: 2
timeoutSeconds: 1 timeoutSeconds: 1
failureThreshold: 40 failureThreshold: 40
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:
claimName: {{serviceName}}-{{namespace}} claimName: {{serviceName}}-{{namespace}}
imagePullSecrets: imagePullSecrets:
- name: qcloudregistrykey - name: qcloudregistrykey
- name: tencenthubkey - name: tencenthubkey
restartPolicy: Always restartPolicy: Always
terminationGracePeriodSeconds: 30 terminationGracePeriodSeconds: 30
status: {} status: {}
...@@ -35,6 +35,8 @@ spec: ...@@ -35,6 +35,8 @@ spec:
qcloud-app: {{serviceName}} qcloud-app: {{serviceName}}
type: base type: base
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