Commit 2be44aa3 authored by 智勇's avatar 智勇

sentinel yaml

parent 7cc4f7a4
const Router = require('koa-router')
const yaml = require('js-yaml')
const templates = require('../serviceTemplate')
const IMAGES = {
zookeeper: 'zookeeper:3.4.10',
rabbitmq: 'rabbitmq:3.6-management',
mysql: 'mysql:5.7',
}
const router = new Router()
module.exports = router
router.post('/create', async (ctx) => {
const { serviceName, namespace } = ctx.request.body
if (!Object.keys(IMAGES).includes(serviceName)) {
ctx.body = ctx.fail('不支持的服务类型')
return
}
const data = {
namespace,
image: IMAGES[serviceName],
}
const template = templates[serviceName].replace(/{{([A-Za-z0-9_]+)}}/g, function () {
if (data[arguments[1]] === undefined) {
throw new Error('缺少模板所需变量')
}
return data[arguments[1]]
})
const params = yaml.load(template)
await ctx.client.service_create(params)
ctx.body = ctx.ok('创建成功')
})
router.post('/delete', async (ctx) => {
const { serviceName, namespace } = ctx.request.body
await ctx.client.service_delete(serviceName, namespace)
ctx.body = ctx.ok('删除成功')
})
......@@ -12,7 +12,6 @@ const namespaceRoute = require('./namespace')
const serviceRoute = require('./service')
const repositoryRouter = require('./repository')
const tag = require('./tag')
const commonServiceRoute = require('./commonService')
const ingressRoute = require('./ingress')
const deploy = require('./restartLatest')
......@@ -40,7 +39,6 @@ function loadRoutes(router) {
.use('/namespace', namespaceRoute.routes())
.use('/service', serviceRoute.routes())
.use('/commonService', commonServiceRoute.routes())
.use('/ingress', ingressRoute.routes())
.use('/repository', repositoryRouter.routes())
.use('/tag', tag.routes())
......
......@@ -138,6 +138,7 @@ exports.defaultConfig = {
ui: defaultUI,
node: defaultNodejs,
redis: defaultRedis,
'redis-sentinel': defaultRedis,
zookeeper: defaultZookeeper,
mysql: defaultMysql,
rabbitmq: defaultRabbitmq,
......
......@@ -2,6 +2,7 @@ const fs = require('fs')
const mysql = fs.readFileSync('yamls/mysql.pvc.yaml', 'utf8')
const redis = fs.readFileSync('yamls/redis.yaml', 'utf8')
const redis_sentinel = fs.readFileSync('yamls/redis.sentinel.yaml', 'utf8')
const rabbitmq = fs.readFileSync('yamls/rabbitmq.pvc.yaml', 'utf8')
const mongodb = fs.readFileSync('yamls/mongo.pvc.yaml', 'utf8')
const zookeeper = fs.readFileSync('yamls/zookeeper.pvc.yaml', 'utf8')
......@@ -13,6 +14,7 @@ const python = fs.readFileSync('yamls/python.yaml', 'utf8')
module.exports = {
mysql,
redis,
'redis-sentinel': redis_sentinel,
rabbitmq,
mongodb,
zookeeper,
......
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels:
type: base
qcloud-app: {{serviceName}}
name: {{serviceName}}
namespace: {{namespace}}
spec:
replicas: 1
revisionHistoryLimit: 1
selector:
matchLabels:
qcloud-app: {{serviceName}}
strategy:
type: Recreate
template:
metadata:
labels:
type: base
qcloud-app: {{serviceName}}
spec:
nodeSelector:
zone: "3"
containers:
- image: ccr.ccs.tencentyun.com/{{image}}
imagePullPolicy: Always
name: {{serviceName}}
resources:
requests:
cpu: {{resources.cpu.request}}m
memory: {{resources.memory.request}}Mi
limits:
cpu: {{resources.cpu.limit}}m
memory: {{resources.memory.limit}}Mi
imagePullSecrets:
- name: qcloudregistrykey
- name: tencenthubkey
restartPolicy: Always
terminationGracePeriodSeconds: 30
status: {}
---
apiVersion: v1
kind: Service
metadata:
labels:
type: base
qcloud-app: {{serviceName}}
name: {{serviceName}}
namespace: {{namespace}}
spec:
type: NodePort
ports:
- name: '6379'
port: 6379
- name: '6380'
port: 6380
- name: '6381'
port: 6381
- name: '26379'
port: 26379
selector:
qcloud-app: {{serviceName}}
......@@ -62,7 +62,5 @@ spec:
port: 6382
- name: '6383'
port: 6383
- name: '26379'
port: 26379
selector:
qcloud-app: {{serviceName}}
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