Commit 26690e8b authored by 智勇's avatar 智勇

Merge branch 'kewei.jia' into 'master'

Kewei.jia



See merge request !10
parents 0c4bce7c 3514ecb3
...@@ -37,8 +37,8 @@ router.post('/create', async (ctx) => { ...@@ -37,8 +37,8 @@ router.post('/create', async (ctx) => {
}) })
const params = yaml.load(template) const params = yaml.load(template)
await ctx.cluster.service_create(params, label) await ctx.cluster.service_create(params, label)
if (domain) { if (label !== 'base') {
await ingressCreate({ namespace, serviceName, domain }) await ingressCreate(namespace, serviceName, domain)
} }
ctx.body = ctx.ok('创建成功') ctx.body = ctx.ok('创建成功')
}) })
......
...@@ -2,17 +2,19 @@ const path = require('path') ...@@ -2,17 +2,19 @@ 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 client = new Client({ config: config.fromKubeconfig(), version: '1.9' })
const client = new Client({ const client = new Client({
config: config.fromKubeconfig( config: config.fromKubeconfig(
path.resolve(__dirname, './kubeConfig.yaml'), path.resolve(__dirname, './kubeConfig.yaml'),
), ),
version: '1.10', version: '1.10',
}) })
const getManifest = ({ namespace, serviceName, domain }) => ({ const getManifest = (namespace, servicename, doamin) => ({
apiVersion: 'extensions/v1beta1', apiVersion: 'extensions/v1beta1',
kind: 'Ingress', kind: 'Ingress',
metadata: { metadata: {
name: serviceName, name: servicename,
namespace, namespace,
annotations: { annotations: {
'kubernetes.io/ingress.class': 'traefik', 'kubernetes.io/ingress.class': 'traefik',
...@@ -21,13 +23,13 @@ const getManifest = ({ namespace, serviceName, domain }) => ({ ...@@ -21,13 +23,13 @@ const getManifest = ({ namespace, serviceName, domain }) => ({
spec: { spec: {
rules: [ rules: [
{ {
host: `${domain}-${namespace}.liangkebang.net`, host: `${doamin}-${namespace}.liangkebang.net`,
http: { http: {
paths: [ paths: [
{ {
path: '/', path: '/',
backend: { backend: {
serviceName: `${serviceName}`, serviceName: `${servicename}`,
servicePort: 80, servicePort: 80,
}, },
}, },
...@@ -39,20 +41,17 @@ const getManifest = ({ namespace, serviceName, domain }) => ({ ...@@ -39,20 +41,17 @@ const getManifest = ({ namespace, serviceName, domain }) => ({
}) })
const ingressGet = async (namespace, servicename) => client.apis.extensions.v1beta1.namespaces(namespace) const ingressGet = async (namespace, servicename) => client.apis.extensions.v1beta1.namespaces(namespace)
.ingresses(servicename).get() .ingresses(servicename).get()
const ingressCreate = async (namespace, servicename, doamin) => {
const ingressCreate = async (options) => { const Manifest = getManifest(namespace, servicename, doamin)
const m = getManifest(options) await client.apis.extensions.v1beta1.namespace(namespace).ingresses
await client.apis.extensions.v1beta1.namespace(options.namespace).ingresses .post({ body: Manifest })
.post({ body: m })
} }
const ingressUpdate = async (namespace, servicename, host) => { const ingressUpdate = async (namespace, servicename, host) => {
const Manifest = getManifest(namespace, servicename) const Manifest = getManifest(namespace, servicename)
Manifest.spec.rules[0].host = host Manifest.spec.rules[0].host = host
await client.apis.extensions.v1beta1.namespace(namespace).ingresses(servicename) await client.apis.extensions.v1beta1.namespace(namespace).ingresses(servicename)
.patch({ body: Manifest }) .patch({ body: Manifest })
} }
const ingressDelete = async (namespace, servicename) => { const ingressDelete = async (namespace, servicename) => {
await client.apis.extensions.v1beta1.namespaces(namespace).ingresses(servicename).delete() await client.apis.extensions.v1beta1.namespaces(namespace).ingresses(servicename).delete()
} }
......
serviceName: mysql serviceName: mysql
namespace: {{namespace}} namespace: {{namespace}}
replicas: 1 replicas: 1
accessType: LoadBalancer accessType: NodePort
portMappings.0.protocol: TCP portMappings.0.protocol: TCP
portMappings.0.lbPort: 3306
portMappings.0.containerPort: 3306 portMappings.0.containerPort: 3306
containers.0.containerName: mysql containers.0.containerName: mysql
......
serviceName: rabbitmq serviceName: rabbitmq
namespace: {{namespace}} namespace: {{namespace}}
replicas: 1 replicas: 1
accessType: ClusterIP accessType: NodePort
portMappings.0.protocol: TCP portMappings.0.protocol: TCP
portMappings.0.lbPort: 5672
portMappings.0.containerPort: 5672 portMappings.0.containerPort: 5672
portMappings.1.protocol: TCP portMappings.1.protocol: TCP
portMappings.1.lbPort: 15672
portMappings.1.containerPort: 15672 portMappings.1.containerPort: 15672
containers.0.containerName: rabbitmq containers.0.containerName: rabbitmq
......
serviceName: redis serviceName: redis
namespace: {{namespace}} namespace: {{namespace}}
replicas: 1 replicas: 1
accessType: ClusterIP accessType: NodePort
portMappings.0.protocol: TCP portMappings.0.protocol: TCP
portMappings.0.lbPort: 6379
portMappings.0.containerPort: 6379 portMappings.0.containerPort: 6379
portMappings.1.protocol: TCP portMappings.1.protocol: TCP
portMappings.1.lbPort: 6380
portMappings.1.containerPort: 6380 portMappings.1.containerPort: 6380
portMappings.2.protocol: TCP portMappings.2.protocol: TCP
portMappings.2.lbPort: 6381
portMappings.2.containerPort: 6381 portMappings.2.containerPort: 6381
portMappings.3.protocol: TCP portMappings.3.protocol: TCP
portMappings.3.lbPort: 6382
portMappings.3.containerPort: 6382 portMappings.3.containerPort: 6382
portMappings.4.protocol: TCP portMappings.4.protocol: TCP
portMappings.4.lbPort: 6383
portMappings.4.containerPort: 6383 portMappings.4.containerPort: 6383
containers.0.containerName: redis containers.0.containerName: redis
......
serviceName: zookeeper serviceName: zookeeper
namespace: {{namespace}} namespace: {{namespace}}
replicas: 1 replicas: 1
accessType: ClusterIP accessType: NodePort
portMappings.0.protocol: TCP portMappings.0.protocol: TCP
portMappings.0.lbPort: 2181
portMappings.0.containerPort: 2181 portMappings.0.containerPort: 2181
portMappings.1.protocol: TCP portMappings.1.protocol: TCP
portMappings.1.lbPort: 9090
portMappings.1.containerPort: 9090 portMappings.1.containerPort: 9090
containers.0.containerName: zookeeper containers.0.containerName: zookeeper
......
...@@ -29,8 +29,8 @@ class Cluster extends Client { ...@@ -29,8 +29,8 @@ class Cluster extends Client {
return this.post('DescribeClusterServiceInfo', { serviceName, namespace, clusterId: this.clusterId }) return this.post('DescribeClusterServiceInfo', { serviceName, namespace, clusterId: this.clusterId })
} }
async service_create(params, type) { async service_create(params, lable) {
logger.info('创建服务详细信息:', params, type) logger.info('创建服务详细信息:', params, lable)
params.clusterId = this.clusterId params.clusterId = this.clusterId
const str = JSON.stringify(params) const str = JSON.stringify(params)
await this.post('CreateClusterService', params) await this.post('CreateClusterService', params)
...@@ -42,9 +42,9 @@ class Cluster extends Client { ...@@ -42,9 +42,9 @@ class Cluster extends Client {
clusterId: params.clusterId, clusterId: params.clusterId,
serviceName: params.serviceName, serviceName: params.serviceName,
namespace: params.namespace, namespace: params.namespace,
'labels.type': type, 'labels.type': lable,
} }
logger.info('修改服务标签信息:', updateLabels)
return this.post('ModifyServiceLabels', updateLabels) return this.post('ModifyServiceLabels', updateLabels)
} }
......
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