fix(server):imprv minio initializer, fix ingress config (#639)

This commit is contained in:
maslow 2023-01-16 13:18:13 +08:00 committed by GitHub
parent 5506965d94
commit a545793966
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 39 additions and 168 deletions

View File

@ -14,7 +14,7 @@ spec:
paths:
- backend:
service:
name: {{ .Release.Name }}-minio
name: minio
port:
number: 9000
path: /

View File

@ -25,7 +25,7 @@ DATABASE_URL="mongodb://${DB_USERNAME}:${DB_PASSWORD}@mongo.${NAMESPACE}.svc.clu
MINIO_ROOT_ACCESS_KEY=$(tr -cd 'a-z0-9' </dev/urandom |head -c16)
MINIO_ROOT_SECRET_KEY=$(tr -cd 'a-z0-9' </dev/urandom |head -c64)
MINIO_EXTERNAL_ENDPOINT="${HTTP_SCHEMA}://oss.${DOMAIN}"
MINIO_INTERNAL_ENDPOINT=laf-minio.${NAMESPACE}.svc.cluster.local:9000
MINIO_INTERNAL_ENDPOINT=minio.${NAMESPACE}.svc.cluster.local:9000
MINIO_DOMAIN=oss.${DOMAIN}
## envs - apisix

View File

@ -1,144 +0,0 @@
POSTGRESQL_SERVICE_HOST=10.96.1.105
KUBERNETES_SERVICE_PORT_HTTPS=443
MINIO_CONSOLE_PORT_9001_TCP_ADDR=10.96.0.61
CASDOOR_ENDPOINT=http://casdoor.192.168.64.204.nip.io
CASDOOR_PORT_8000_TCP_PROTO=tcp
LAF_WEB_PORT=tcp://10.96.2.34:80
APISIX_ADMIN_SERVICE_HOST=10.96.2.144
APISIX_DASHBOARD_SERVICE_HOST=10.96.3.97
KUBERNETES_SERVICE_PORT=443
LAF_SERVER_PORT_3000_TCP=tcp://10.96.0.179:3000
APISIX_ADMIN_PORT=tcp://10.96.2.144:9180
APISIX_API_URL=http://apisix-admin.laf-system.svc.cluster.local:9180/apisix/admin
CASDOOR_ORG_NAME=laf
LAF_WEB_PORT_80_TCP=tcp://10.96.2.34:80
MONGO_DEV_PORT_27017_TCP=tcp://10.96.1.205:27017
DATABASE_URL=mongodb://admin:sdnhjj9j05bf04e5xuugt2x92sdtreom2upwhz3asi28f2jltjgo9hxcgiy224ox@127.0.0.1:27017/sys_db?authSource=admin&replicaSet=rs0&w=majority&directConnection=true
APISIX_INGRESS_CONTROLLER_PORT_80_TCP_ADDR=10.96.3.71
APISIX_ETCD_SERVICE_PORT_HTTP=2379
MINIO_INTERNAL_ENDPOINT=laf-minio.laf-system.svc.cluster.local:9000
HOSTNAME=server-laf-server-6455b99bb8-fg8dk
APISIX_GATEWAY_PORT_80_TCP_ADDR=10.96.0.215
APISIX_INGRESS_CONTROLLER_PORT_80_TCP_PORT=80
CASDOOR_LOCAL_CDN_SERVICE_PORT_HTTP=80
CASDOOR_LOCAL_CDN_SERVICE_PORT=80
MONGO_DEV_SERVICE_PORT_TCP=27017
APISIX_DASHBOARD_SERVICE_PORT_HTTP=80
POSTGRESQL_PORT_5432_TCP=tcp://10.96.1.105:5432
MONGO_DEV_PORT_27017_TCP_PORT=27017
LAF_SERVER_SERVICE_PORT_HTTP=3000
CASDOOR_LOCAL_CDN_SERVICE_HOST=10.96.2.187
MONGO_DEV_PORT=tcp://10.96.1.205:27017
LAF_SERVER_PORT=tcp://10.96.0.179:3000
POSTGRESQL_SERVICE_PORT=5432
APISIX_ADMIN_PORT_9180_TCP_ADDR=10.96.2.144
MONGO_DEV_SERVICE_HOST=10.96.1.205
CASDOOR_PORT_8000_TCP_PORT=8000
APISIX_GATEWAY_PORT_80_TCP_PORT=80
YARN_VERSION=1.22.19
APISIX_DASHBOARD_PORT_80_TCP_ADDR=10.96.3.97
APISIX_GATEWAY_SERVICE_PORT_APISIX_GATEWAY_TLS=443
CASDOOR_LOCAL_CDN_PORT_80_TCP=tcp://10.96.2.187:80
APISIX_INGRESS_CONTROLLER_PORT_80_TCP_PROTO=tcp
MINIO_CONSOLE_PORT_9001_TCP=tcp://10.96.0.61:9001
MINIO_CONSOLE_SERVICE_HOST=10.96.0.61
CASDOOR_LOCAL_CDN_PORT_80_TCP_PROTO=tcp
MINIO_CONSOLE_PORT=tcp://10.96.0.61:9001
PWD=/app
MINIO_SERVICE_PORT=9000
LAF_SERVER_PORT_3000_TCP_PORT=3000
APISIX_ETCD_PORT_2379_TCP=tcp://10.96.2.92:2379
JWT_EXPIRES_IN=7d
APISIX_GATEWAY_SERVICE_PORT_APISIX_GATEWAY=80
DOMAIN=192.168.64.204.nip.io
APISIX_GATEWAY_PORT_80_TCP_PROTO=tcp
POSTGRESQL_PORT_5432_TCP_PROTO=tcp
APISIX_ADMIN_PORT_9180_TCP_PORT=9180
MINIO_SERVICE_PORT_HTTP=9000
POSTGRESQL_PORT_5432_TCP_ADDR=10.96.1.105
CASDOOR_CLIENT_SECRET=68baa5b5ea187a26feb3d9d8787e5626cb0be206c13072fe4d57feb5145c15cc
APISIX_GATEWAY_PORT_443_TCP_PORT=443
MONGO_DEV_PORT_27017_TCP_ADDR=10.96.1.205
APISIX_ADMIN_PORT_9180_TCP_PROTO=tcp
APISIX_GATEWAY_SERVICE_PORT=80
MINIO_PORT=tcp://10.96.2.212:9000
LAF_WEB_PORT_80_TCP_PORT=80
HOME=/root
CASDOOR_LOCAL_CDN_PORT_80_TCP_PORT=80
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
MINIO_ROOT_SECRET_KEY=tq7jhww43u708f4djnxvfojjfbib8dnaisb496sy6bt8419mscb8i6c35hcgtvxj
APISIX_DASHBOARD_SERVICE_PORT=80
LAF_WEB_SERVICE_HOST=10.96.2.34
APISIX_DASHBOARD_PORT_80_TCP_PROTO=tcp
MINIO_CONSOLE_PORT_9001_TCP_PROTO=tcp
CASDOOR_LOCAL_CDN_PORT=tcp://10.96.2.187:80
POSTGRESQL_SERVICE_PORT_TCP=5432
APISIX_INGRESS_CONTROLLER_SERVICE_HOST=10.96.3.71
APISIX_GATEWAY_PORT_443_TCP=tcp://10.96.0.215:443
MINIO_ROOT_ACCESS_KEY=qdqu9iiqckpq51md
LAF_SERVER_SERVICE_PORT=3000
APISIX_ADMIN_PORT_9180_TCP=tcp://10.96.2.144:9180
LAF_SERVER_SERVICE_HOST=10.96.0.179
MONGO_DEV_SERVICE_PORT=27017
LAF_WEB_SERVICE_PORT=80
APISIX_INGRESS_CONTROLLER_SERVICE_PORT_HTTP=80
APISIX_GATEWAY_PORT=tcp://10.96.0.215:80
POSTGRESQL_PORT_5432_TCP_PORT=5432
LAF_SERVER_PORT_3000_TCP_ADDR=10.96.0.179
MINIO_PORT_9000_TCP_ADDR=10.96.2.212
POSTGRESQL_PORT=tcp://10.96.1.105:5432
CASDOOR_APP_NAME=laf
MINIO_PORT_9000_TCP_PROTO=tcp
CASDOOR_CLIENT_ID=a4f90b8cc51ccd585ef3c
TERM=xterm
APISIX_ETCD_PORT_2379_TCP_ADDR=10.96.2.92
APISIX_DASHBOARD_PORT_80_TCP_PORT=80
CASDOOR_PORT_8000_TCP_ADDR=10.96.1.198
APISIX_GATEWAY_SERVICE_HOST=10.96.0.215
MINIO_CONSOLE_SERVICE_PORT=9001
MINIO_PORT_9000_TCP=tcp://10.96.2.212:9000
LAF_WEB_SERVICE_PORT_HTTP=80
CASDOOR_SERVICE_PORT_HTTP=8000
LAF_WEB_PORT_80_TCP_PROTO=tcp
APISIX_ETCD_SERVICE_HOST=10.96.2.92
MINIO_SERVICE_HOST=10.96.2.212
CASDOOR_SERVICE_HOST=10.96.1.198
SHLVL=1
LAF_WEB_PORT_80_TCP_ADDR=10.96.2.34
MONGO_DEV_PORT_27017_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PROTO=tcp
APISIX_DASHBOARD_PORT_80_TCP=tcp://10.96.3.97:80
CASDOOR_REDIRECT_URI=http://www.192.168.64.204.nip.io/login_callback
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
# SERVER=http://api.192.168.64.204.nip.io
SERVER=http://localhost:3000
APISIX_GATEWAY_PORT_443_TCP_ADDR=10.96.0.215
LAF_SERVER_PORT_3000_TCP_PROTO=tcp
APISIX_INGRESS_CONTROLLER_PORT_80_TCP=tcp://10.96.3.71:80
APISIX_GATEWAY_PORT_443_TCP_PROTO=tcp
CASDOOR_SERVICE_PORT=8000
APISIX_ADMIN_SERVICE_PORT_APISIX_ADMIN=9180
APISIX_DASHBOARD_PORT=tcp://10.96.3.97:80
APISIX_INGRESS_CONTROLLER_PORT=tcp://10.96.3.71:80
MINIO_CONSOLE_SERVICE_PORT_HTTP=9001
CASDOOR_PORT=tcp://10.96.1.198:8000
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
CASDOOR_PORT_8000_TCP=tcp://10.96.1.198:8000
APISIX_API_KEY=b385bb1c786ecdc8fa2cf7a85c33a919
MINIO_CONSOLE_PORT_9001_TCP_PORT=9001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MINIO_EXTERNAL_ENDPOINT=http://oss.192.168.64.204.nip.io
JWT_SECRET=dbe5526070ef9ba6386145861540092eb5fb57d0f5b34930b758b9a31f6028f0
NODE_VERSION=18.13.0
MINIO_PORT_9000_TCP_PORT=9000
APISIX_ETCD_SERVICE_PORT=2379
APISIX_ETCD_PORT_2379_TCP_PORT=2379
APISIX_ADMIN_SERVICE_PORT=9180
APISIX_INGRESS_CONTROLLER_SERVICE_PORT=80
CASDOOR_LOCAL_CDN_PORT_80_TCP_ADDR=10.96.2.187
APISIX_ETCD_PORT=tcp://10.96.2.92:2379
APISIX_ETCD_PORT_2379_TCP_PROTO=tcp
APISIX_GATEWAY_PORT_80_TCP=tcp://10.96.0.215:80
_=/usr/bin/env

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'
import { RegionService } from 'src/region/region.service'
import { MinioService } from 'src/storage/minio/minio.service'
import { PrismaService } from '../prisma.service'
import { InitializerService } from './initializer.service'
@Module({
providers: [InitializerService, PrismaService],
providers: [InitializerService, PrismaService, MinioService, RegionService],
})
export class InitializerModule {}

View File

@ -1,11 +1,18 @@
import { Injectable, Logger } from '@nestjs/common'
import { RegionService } from 'src/region/region.service'
import { MinioService } from 'src/storage/minio/minio.service'
import { CPU_UNIT, ServerConfig } from '../constants'
import { PrismaService } from '../prisma.service'
import * as assert from 'assert'
@Injectable()
export class InitializerService {
private readonly logger = new Logger(InitializerService.name)
constructor(private readonly prisma: PrismaService) {}
constructor(
private readonly prisma: PrismaService,
private readonly minioService: MinioService,
private readonly regionService: RegionService,
) {}
async createDefaultRegion() {
// check if exists
@ -109,4 +116,18 @@ export class InitializerService {
this.logger.verbose('Created default runtime: ' + res.name)
return res
}
async initMinioAlias() {
const regions = await this.regionService.findAll()
for (const region of regions) {
this.logger.verbose('MinioService init - ' + region.name)
const res = await this.minioService.setMinioClientTarget(region)
assert.ok(
res.status === 'success',
'set minio client target failed: ' + region.name,
)
}
}
}

View File

@ -46,10 +46,16 @@ async function bootstrap() {
},
})
const initService = app.get(InitializerService)
await initService.createDefaultRegion()
await initService.createDefaultBundle()
await initService.createDefaultRuntime()
try {
const initService = app.get(InitializerService)
await initService.createDefaultRegion()
await initService.createDefaultBundle()
await initService.createDefaultRuntime()
await initService.initMinioAlias()
} catch (error) {
console.error(error)
process.exit(1)
}
await app.listen(3000)
}

View File

@ -13,7 +13,6 @@ import * as cp from 'child_process'
import { promisify } from 'util'
import { MinioCommandExecOutput } from './types'
import { MINIO_COMMON_USER_GROUP } from 'src/constants'
import { RegionService } from 'src/region/region.service'
const exec = promisify(cp.exec)
@ -21,19 +20,6 @@ const exec = promisify(cp.exec)
export class MinioService {
private readonly logger = new Logger(MinioService.name)
constructor(private readonly regionService: RegionService) {
this.init()
}
async init() {
this.logger.verbose('MinioService init')
const regions = await this.regionService.findAll()
for (const region of regions) {
await this.setMinioClientTarget(region)
}
}
/**
* Create s3 client
* @returns

View File

@ -1,4 +1,4 @@
import { PartialType } from '@nestjs/swagger';
import { CreateTriggerDto } from './create-trigger.dto';
import { PartialType } from '@nestjs/swagger'
import { CreateTriggerDto } from './create-trigger.dto'
export class UpdateTriggerDto extends PartialType(CreateTriggerDto) {}