From f56ff1a38fcb5cb45032e128692574d21fd2b406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=87=E6=B7=BC=EF=BC=88piexlmax?= <303176530@qq.com> Date: Fri, 24 Sep 2021 14:15:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E7=BB=86=E8=8A=82=E8=B0=83?= =?UTF-8?q?=E6=95=B4=20(#726)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加健康检查 样式细节调整 规范化插件js模式 增加k8s yaml文件 (#734) --- deployment/server/gva-server-configmap.yaml | 148 ++++++++++++++ deployment/server/gva-server-deployment.yaml | 68 ++++++ deployment/server/gva-server-service.yaml | 21 ++ deployment/web/gva-web-configmap.yaml | 32 +++ deployment/web/gva-web-deploymemt.yaml | 51 +++++ deployment/web/gva-web-service.yaml | 21 ++ server/Dockerfile | 2 +- server/initialize/router.go | 6 + server/resource/template/web/table.vue.tpl | 12 +- server/service/system/sys_authority.go | 3 +- web/src/components/warningBar/warningBar.vue | 16 +- web/src/core/gin-vue-admin.js | 22 +- web/src/directive/auth.js | 73 +++---- web/src/main.js | 15 +- web/src/style/element_visiable.scss | 193 +++++++++++++++++- web/src/style/main.scss | 180 ---------------- web/src/view/example/customer/customer.vue | 12 +- web/src/view/example/excel/excel.vue | 14 +- web/src/view/example/upload/upload.vue | 12 +- web/src/view/login/index.vue | 53 +++-- web/src/view/superAdmin/api/api.vue | 15 +- .../view/superAdmin/authority/authority.vue | 6 +- .../superAdmin/dictionary/sysDictionary.vue | 20 +- .../dictionary/sysDictionaryDetail.vue | 12 +- web/src/view/superAdmin/menu/menu.vue | 28 +-- .../operation/sysOperationRecord.vue | 22 +- web/src/view/superAdmin/user/user.vue | 14 +- web/src/view/systemTools/autoCode/index.vue | 24 +-- .../view/systemTools/autoCodeAdmin/index.vue | 14 +- web/yarn.lock | 6 +- 30 files changed, 747 insertions(+), 368 deletions(-) create mode 100644 deployment/server/gva-server-configmap.yaml create mode 100644 deployment/server/gva-server-deployment.yaml create mode 100644 deployment/server/gva-server-service.yaml create mode 100644 deployment/web/gva-web-configmap.yaml create mode 100644 deployment/web/gva-web-deploymemt.yaml create mode 100644 deployment/web/gva-web-service.yaml diff --git a/deployment/server/gva-server-configmap.yaml b/deployment/server/gva-server-configmap.yaml new file mode 100644 index 00000000..fb889fb7 --- /dev/null +++ b/deployment/server/gva-server-configmap.yaml @@ -0,0 +1,148 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: config.yaml + annotations: + flipped-aurora/gin-vue-admin: backend + github: "https://github.com/flipped-aurora/gin-vue-admin.git" + app.kubernetes.io/version: 0.0.1 + labels: + app: gva-server + version: gva-vue3 +data: + config.yaml: | + # github.com/flipped-aurora/gin-vue-admin/server Global Configuration + + # jwt configuration + jwt: + signing-key: 'qmPlus' + expires-time: 604800 + buffer-time: 86400 + + # zap logger configuration + zap: + level: 'info' + format: 'console' + prefix: '[github.com/flipped-aurora/gin-vue-admin/server]' + director: 'log' + link-name: 'latest_log' + show-line: true + encode-level: 'LowercaseColorLevelEncoder' + stacktrace-key: 'stacktrace' + log-in-console: true + + # redis configuration + redis: + db: 0 + addr: '127.0.0.1:6379' + password: '' + + # email configuration + email: + to: 'xxx@qq.com' + port: 465 + from: 'xxx@163.com' + host: 'smtp.163.com' + is-ssl: true + secret: 'xxx' + nickname: 'test' + + # casbin configuration + casbin: + model-path: './resource/rbac_model.conf' + + # system configuration + system: + env: 'develop' # Change to "develop" to skip authentication for development mode + addr: 8888 + db-type: 'mysql' + oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置 + use-multipoint: false + + # captcha configuration + captcha: + key-long: 6 + img-width: 240 + img-height: 80 + + # mysql connect configuration + # 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://www.github.com/flipped-aurora/gin-vue-admin/server.com/docs/first) + mysql: + path: '' + config: '' + db-name: '' + username: '' + password: '' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + + # local configuration + local: + path: 'uploads/file' + + # autocode configuration + autocode: + transfer-restart: true + root: "" + server: /server + server-api: /api/v1/autocode + server-initialize: /initialize + server-model: /model/autocode + server-request: /model/autocode/request/ + server-router: /router/autocode + server-service: /service/autocode + web: /web/src + web-api: /api + web-flow: /view + web-form: /view + web-table: /view + + # qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址) + qiniu: + zone: 'ZoneHuaDong' + bucket: '' + img-path: '' + use-https: false + access-key: '' + secret-key: '' + use-cdn-domains: false + + + # aliyun oss configuration + aliyun-oss: + endpoint: 'yourEndpoint' + access-key-id: 'yourAccessKeyId' + access-key-secret: 'yourAccessKeySecret' + bucket-name: 'yourBucketName' + bucket-url: 'yourBucketUrl' + base-path: 'yourBasePath' + + # tencent cos configuration + tencent-cos: + bucket: 'xxxxx-10005608' + region: 'ap-shanghai' + secret-id: 'xxxxxxxx' + secret-key: 'xxxxxxxx' + base-url: 'https://gin.vue.admin' + path-prefix: 'github.com/flipped-aurora/gin-vue-admin/server' + + # excel configuration + excel: + dir: './resource/excel/' + + + # timer task db clear table + Timer: + start: true + spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron/v3 + detail: [ + # tableName: 需要清理的表名 + # compareField: 需要比较时间的字段 + # interval: 时间间隔, 具体配置详看 time.ParseDuration() 中字符串表示 且不能为负数 + # 2160h = 24 * 30 * 3 -> 三个月 + { tableName: "sys_operation_records" , compareField: "created_at", interval: "2160h" }, + { tableName: "jwt_blacklists" , compareField: "created_at", interval: "168h" } + #{ tableName: "log2" , compareField: "created_at", interval: "2160h" } + ] diff --git a/deployment/server/gva-server-deployment.yaml b/deployment/server/gva-server-deployment.yaml new file mode 100644 index 00000000..d89dcb63 --- /dev/null +++ b/deployment/server/gva-server-deployment.yaml @@ -0,0 +1,68 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gva-server + annotations: + flipped-aurora/gin-vue-admin: backend + github: "https://github.com/flipped-aurora/gin-vue-admin.git" + app.kubernetes.io/version: 0.0.1 + labels: + app: gva-server + version: gva-vue3 +spec: + replicas: 1 + selector: + matchLabels: + app: gva-server + version: gva-vue3 + template: + metadata: + labels: + app: gva-server + version: gva-vue3 + spec: + containers: + - name: gin-vue-admin-container + image: registry.cn-hangzhou.aliyuncs.com/gin-vue-admin/server:40fc3aa6 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8888 + name: http + volumeMounts: + - mountPath: /go/src/github.com/flipped-aurora/gin-vue-admin/server/config.yaml + name: config + subPath: config.yaml + - mountPath: /etc/localtime + name: localtime + resources: + limits: + cpu: 1000m + memory: 2000Mi + requests: + cpu: 100m + memory: 200Mi +# readinessProbe: +# httpGet: +# path: /ready +# port: http +# initialDelaySeconds: 20 +# periodSeconds: 10 +# successThreshold: 1 +# failureThreshold: 3 +# livenessProbe: +# httpGet: +# path: /health +# port: http +# initialDelaySeconds: 20 +# periodSeconds: 10 +# successThreshold: 1 +# failureThreshold: 3 + #imagePullSecrets: + # - name: docker-registry + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: config + configMap: + name: config.yaml \ No newline at end of file diff --git a/deployment/server/gva-server-service.yaml b/deployment/server/gva-server-service.yaml new file mode 100644 index 00000000..17aaef2c --- /dev/null +++ b/deployment/server/gva-server-service.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Service +metadata: + name: gva-server + annotations: + flipped-aurora/gin-vue-admin: backend + github: "https://github.com/flipped-aurora/gin-vue-admin.git" + app.kubernetes.io/version: 0.0.1 + labels: + app: gva-server + version: gva-vue3 +spec: + selector: + app: gva-server + version: gva-vue3 + ports: + - port: 8888 + name: http + targetPort: 8888 + type: ClusterIP +# type: NodePort diff --git a/deployment/web/gva-web-configmap.yaml b/deployment/web/gva-web-configmap.yaml new file mode 100644 index 00000000..189b8617 --- /dev/null +++ b/deployment/web/gva-web-configmap.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: my.conf +data: + my.conf: | + server { + listen 8080; + server_name localhost; + + #charset koi8-r; + #access_log logs/host.access.log main; + + location / { + root /usr/share/nginx/html; + add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + try_files $uri $uri/ /index.html; + } + + location /api { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + rewrite ^/api/(.*)$ /$1 break; #重写 + proxy_pass http://gva-server:8888; # 设置代理服务器的协议和地址 + } + + location /api/swagger/index.html { + proxy_pass http://gva-server:8888/swagger/index.html; + } + } \ No newline at end of file diff --git a/deployment/web/gva-web-deploymemt.yaml b/deployment/web/gva-web-deploymemt.yaml new file mode 100644 index 00000000..bb442477 --- /dev/null +++ b/deployment/web/gva-web-deploymemt.yaml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gva-web + annotations: + flipped-aurora/gin-vue-admin: ui + github: "https://github.com/flipped-aurora/gin-vue-admin.git" + app.kubernetes.io/version: 0.0.1 + labels: + app: gva-web + version: gva-vue3 +spec: + replicas: 1 + selector: + matchLabels: + app: gva-web + version: gva-vue3 + template: + metadata: + labels: + app: gva-web + version: gva-vue3 + spec: + containers: + - name: gin-vue-admin-nginx-container + image: registry.cn-hangzhou.aliyuncs.com/gin-vue-admin/web:40fc3aa6 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8080 + name: http + readinessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + resources: + limits: + cpu: 500m + memory: 1000Mi + requests: + cpu: 100m + memory: 100Mi + volumeMounts: + - mountPath: /etc/nginx/conf.d/ + name: nginx-config + volumes: + - name: nginx-config + configMap: + name: my.conf diff --git a/deployment/web/gva-web-service.yaml b/deployment/web/gva-web-service.yaml new file mode 100644 index 00000000..39bdeab3 --- /dev/null +++ b/deployment/web/gva-web-service.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Service +metadata: + name: gva-web + annotations: + flipped-aurora/gin-vue-admin: ui + github: "https://github.com/flipped-aurora/gin-vue-admin.git" + app.kubernetes.io/version: 0.0.1 + labels: + app: gva-web + version: gva-vue3 +spec: + type: NodePort +# type: ClusterIP + ports: + - name: http + port: 8080 + targetPort: 8080 + selector: + app: gva-web + version: gva-vue3 diff --git a/server/Dockerfile b/server/Dockerfile index 0e03cd50..5c3b8861 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:alpine +FROM golang:alpine as builder WORKDIR /go/src/github.com/flipped-aurora/gin-vue-admin/server COPY . . diff --git a/server/initialize/router.go b/server/initialize/router.go index 000f33a2..7e0fc2bd 100644 --- a/server/initialize/router.go +++ b/server/initialize/router.go @@ -41,6 +41,12 @@ func Routers() *gin.Engine { exampleRouter := router.RouterGroupApp.Example autocodeRouter := router.RouterGroupApp.Autocode PublicGroup := Router.Group("") + { + // 健康监测 + PublicGroup.GET("/health", func(c *gin.Context) { + c.JSON(200, "ok") + }) + } { systemRouter.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权 systemRouter.InitInitRouter(PublicGroup) // 自动初始化相关 diff --git a/server/resource/template/web/table.vue.tpl b/server/resource/template/web/table.vue.tpl index 5ceb06bf..5b0c1fa5 100644 --- a/server/resource/template/web/table.vue.tpl +++ b/server/resource/template/web/table.vue.tpl @@ -37,7 +37,7 @@ 确定 @@ -50,24 +50,24 @@ @selection-change="handleSelectionChange" > - + {{- range .Fields}} {{- if .DictType}} - + {{- else if eq .FieldType "bool" }} - + {{- else }} - + {{- end }} {{- end }} - +