| @@ -1,60 +1,131 @@ | |||||
| worker_processes 1; | |||||
| events { | |||||
| worker_connections 1024; | |||||
| } | |||||
| http { | |||||
| include mime.types; | |||||
| default_type application/octet-stream; | |||||
| sendfile on; | |||||
| keepalive_timeout 65; | |||||
| server { | |||||
| listen 8000; | |||||
| server_name localhost; | |||||
| location /api/{ | |||||
| rewrite ^/prod-api/(.*)$ /$1 break; | |||||
| proxy_set_header Host $http_host; | |||||
| proxy_set_header X-Real-IP $remote_addr; | |||||
| proxy_set_header REMOTE-HOST $remote_addr; | |||||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| proxy_pass http://ci4s-gateway-service.argo.svc:8082/; | |||||
| } | |||||
| location /label-studio { | |||||
| rewrite ^/prod-api/(.*)$ /$1 break; | |||||
| proxy_pass http://label-studio-ls-app.label-data.svc:80/; | |||||
| proxy_hide_header X-Frame-Options; | |||||
| add_header X-Frame-Options "ALLOW-FROM http://label-studio-ls-app.label-data.svc:80/"; | |||||
| } | |||||
| location /api/v1/model/ { | |||||
| proxy_pass http://pipeline-convert-service.argo.svc:80; | |||||
| proxy_set_header REMOTE-HOST $remote_addr; | |||||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| } | |||||
| location / { | |||||
| rewrite ^/prod-api/(.*)$ /$1 break; | |||||
| root /home/ruoyi/projects/ruoyi-ui; | |||||
| try_files $uri $uri/ /index.html; | |||||
| index index.html index.htm; | |||||
| } | |||||
| location @router { | |||||
| rewrite ^.*$ /index.html last; | |||||
| } | |||||
| # 避免actuator暴露 | |||||
| if ($request_uri ~ "/actuator") { | |||||
| return 403; | |||||
| } | |||||
| error_page 500 502 503 504 /50x.html; | |||||
| location = /50x.html { | |||||
| root html; | |||||
| } | |||||
| } | |||||
| } | |||||
| worker_processes 1; | |||||
| events { | |||||
| worker_connections 1024; | |||||
| } | |||||
| http { | |||||
| include mime.types; | |||||
| default_type application/octet-stream; | |||||
| sendfile on; | |||||
| keepalive_timeout 65; | |||||
| client_max_body_size 20480m; | |||||
| error_log /var/log/nginx/error.log debug; | |||||
| server { | |||||
| listen 8000; | |||||
| server_name localhost; | |||||
| location /api/{ | |||||
| # rewrite ^/prod-api/(.*)$ /$1 break; | |||||
| proxy_set_header Host $http_host; | |||||
| proxy_set_header X-Real-IP $remote_addr; | |||||
| proxy_set_header REMOTE-HOST $remote_addr; | |||||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| proxy_pass http://ci4s-gateway-service.argo.svc:8082/; | |||||
| proxy_connect_timeout 500s; # 设置连接超时时间为 120 秒 | |||||
| proxy_read_timeout 500s; # 设置读取超时时间为 120 秒 | |||||
| proxy_send_timeout 500s; # 设置发送超时时间为 120 秒 | |||||
| } | |||||
| location /label-studio/ { | |||||
| # rewrite ^/label-studio/(.*)$ /$1 break; | |||||
| proxy_pass http://label-studio-service.argo.svc:8080/projects/; | |||||
| proxy_hide_header X-Frame-Options; | |||||
| add_header X-Frame-Options ALLOWALL; | |||||
| } | |||||
| location / { | |||||
| rewrite ^/prod-api/(.*)$ /$1 break; | |||||
| root /home/ruoyi/projects/ruoyi-ui; | |||||
| try_files $uri $uri/ /index.html; | |||||
| index index.html index.htm; | |||||
| } | |||||
| location /api/v1/model/ { | |||||
| proxy_pass http://pipeline-convert-service.argo.svc:80; | |||||
| proxy_set_header REMOTE-HOST $remote_addr; | |||||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| } | |||||
| # location /api/v1/realtimeStatus { | |||||
| # proxy_pass http://argo-server.argo.svc:2746/api/v1/workflow-events/argo; | |||||
| # proxy_set_header REMOTE-HOST $remote_addr; | |||||
| # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| # } | |||||
| location /api/v1/tensorboard/show { | |||||
| # 提取查询参数中的 `svc` 值 | |||||
| set $svc ""; | |||||
| if ($arg_svc) { | |||||
| set $svc $arg_svc; | |||||
| } | |||||
| # 将请求转发到动态生成的内部服务地址 | |||||
| proxy_pass http://$svc.argo.svc:6006; | |||||
| # 传递必要的头信息 | |||||
| proxy_set_header Host $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; | |||||
| # 对于 WebSocket 应用很重要 | |||||
| proxy_buffering off; | |||||
| } | |||||
| location /api/v1/realtimeStatus { | |||||
| rewrite ^/api/v1/realtimeStatus(.*)$ /api/v1/workflow-events/argo$1 break; | |||||
| proxy_pass https://argo-server.argo.svc:2746; | |||||
| proxy_http_version 1.1; | |||||
| proxy_set_header Host $host; | |||||
| proxy_set_header REMOTE-HOST $remote_addr; | |||||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| proxy_set_header X-Forwarded-Proto $scheme; | |||||
| # 保留查询参数 | |||||
| proxy_set_header X-Original-URI $request_uri; | |||||
| # 禁用缓冲 | |||||
| proxy_buffering off; | |||||
| # 增加超时时间 | |||||
| proxy_read_timeout 3600s; | |||||
| proxy_send_timeout 3600s; | |||||
| proxy_connect_timeout 60s; | |||||
| # 设置传递的请求头 | |||||
| # proxy_set_header Connection ''; | |||||
| # chunked_transfer_encoding off; | |||||
| # 如果需要保留自定义头部 | |||||
| proxy_set_header Accept 'text/event-stream'; | |||||
| } | |||||
| location /newlog/realtimeLog { | |||||
| proxy_pass http://loki.loki-log.svc:3100/loki/api/v1/tail; | |||||
| proxy_http_version 1.1; | |||||
| proxy_set_header Upgrade $http_upgrade; | |||||
| proxy_set_header Connection "Upgrade"; | |||||
| proxy_set_header Host $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; | |||||
| } | |||||
| location @router { | |||||
| rewrite ^.*$ /index.html last; | |||||
| } | |||||
| # 避免actuator暴露 | |||||
| if ($request_uri ~ "/actuator") { | |||||
| return 403; | |||||
| } | |||||
| error_page 500 502 503 504 /50x.html; | |||||
| location = /50x.html { | |||||
| root html; | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -15,14 +15,9 @@ spec: | |||||
| spec: | spec: | ||||
| containers: | containers: | ||||
| - name: ci4s-management-platform | - name: ci4s-management-platform | ||||
| image: 172.20.32.187/ci4s/ci4s-managent:202409181159 | |||||
| image: 172.20.32.187/ci4s/ci4s-managent:202409181517 | |||||
| ports: | ports: | ||||
| - containerPort: 9213 | - containerPort: 9213 | ||||
| env: | |||||
| - name: http_proxy | |||||
| value: "http://172.20.32.253:3128" | |||||
| - name: https_proxy | |||||
| value: "http://172.20.32.253:3128" | |||||
| --- | --- | ||||
| apiVersion: v1 | apiVersion: v1 | ||||
| kind: Service | kind: Service | ||||
| @@ -18,6 +18,13 @@ spec: | |||||
| image: ${k8s-7management-image} | image: ${k8s-7management-image} | ||||
| ports: | ports: | ||||
| - containerPort: 9213 | - containerPort: 9213 | ||||
| volumeMounts: | |||||
| - name: resource-volume | |||||
| mountPath: /home/resource/ | |||||
| volumes: | |||||
| - name: resource-volume | |||||
| persistentVolumeClaim: | |||||
| claimName: platform-data-pvc-nfs | |||||
| --- | --- | ||||
| apiVersion: v1 | apiVersion: v1 | ||||
| kind: Service | kind: Service | ||||
| @@ -2,9 +2,11 @@ package com.ruoyi.platform.controller.model; | |||||
| import com.ruoyi.common.core.web.domain.AjaxResult; | import com.ruoyi.common.core.web.domain.AjaxResult; | ||||
| import com.ruoyi.platform.service.ModelsService; | import com.ruoyi.platform.service.ModelsService; | ||||
| import com.ruoyi.platform.utils.DVCUtils; | |||||
| import com.ruoyi.platform.vo.ModelsVo; | import com.ruoyi.platform.vo.ModelsVo; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| import org.eclipse.jgit.api.errors.GitAPIException; | |||||
| import org.springframework.core.io.InputStreamResource; | import org.springframework.core.io.InputStreamResource; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||
| @@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.*; | |||||
| import org.springframework.web.multipart.MultipartFile; | import org.springframework.web.multipart.MultipartFile; | ||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.io.IOException; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -23,6 +26,9 @@ public class NewModelFromGitController { | |||||
| @Resource | @Resource | ||||
| private ModelsService modelsService; | private ModelsService modelsService; | ||||
| @Resource | |||||
| private DVCUtils dvcUtils; | |||||
| @PostMapping("/addModel") | @PostMapping("/addModel") | ||||
| @ApiOperation("添加模型") | @ApiOperation("添加模型") | ||||
| public AjaxResult addModelAndVersion(@RequestBody ModelsVo modelsVo) throws Exception { | public AjaxResult addModelAndVersion(@RequestBody ModelsVo modelsVo) throws Exception { | ||||
| @@ -83,8 +89,8 @@ public class NewModelFromGitController { | |||||
| @GetMapping("/getModelDetail") | @GetMapping("/getModelDetail") | ||||
| @ApiOperation(value = "获取模型详细信息") | @ApiOperation(value = "获取模型详细信息") | ||||
| public AjaxResult getModelDetail(@RequestParam("id") Integer id, @RequestParam("name") String name, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner, @RequestParam("version") String version) throws Exception { | |||||
| return AjaxResult.success(this.modelsService.getModelDetail(id, name, identifier, owner, version)); | |||||
| public AjaxResult getModelDetail(@RequestParam("id") Integer id, @RequestParam("identifier") String identifier, @RequestParam("owner") String owner, @RequestParam("version") String version) throws Exception { | |||||
| return AjaxResult.success(this.modelsService.getModelDetail(id, identifier, owner, version)); | |||||
| } | } | ||||
| @GetMapping("/getModelDependencyTree") | @GetMapping("/getModelDependencyTree") | ||||
| @@ -112,4 +118,16 @@ public class NewModelFromGitController { | |||||
| this.modelsService.deleteVersion(id, identifier, owner, version, relativePaths); | this.modelsService.deleteVersion(id, identifier, owner, version, relativePaths); | ||||
| return AjaxResult.success(); | return AjaxResult.success(); | ||||
| } | } | ||||
| // @GetMapping("/test") | |||||
| // public AjaxResult test() { | |||||
| // try { | |||||
| // dvcUtils.gitPush("E:\\test\\admin\\model\\1451938\\object-model", "fanshuai", "h1n2x3j4y5@"); | |||||
| // } catch (IOException e) { | |||||
| // throw new RuntimeException(e); | |||||
| // } catch (GitAPIException e) { | |||||
| // throw new RuntimeException(e); | |||||
| // } | |||||
| // return AjaxResult.success(); | |||||
| // } | |||||
| } | } | ||||
| @@ -101,7 +101,7 @@ public interface ModelsService { | |||||
| List<Map<String, Object>> getVersionList(String identifier, String owner) throws Exception; | List<Map<String, Object>> getVersionList(String identifier, String owner) throws Exception; | ||||
| ModelsVo getModelDetail(Integer id, String name, String identifier, String owner, String version) throws Exception; | |||||
| ModelsVo getModelDetail(Integer id, String identifier, String owner, String version) throws Exception; | |||||
| ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String identifier, String version) throws Exception; | ModelDependency1TreeVo getModelDependencyTree(Integer repoId, String identifier, String version) throws Exception; | ||||
| @@ -882,7 +882,7 @@ public class ModelsServiceImpl implements ModelsService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ModelsVo getModelDetail(Integer id, String name, String identifier, String owner, String version) throws Exception { | |||||
| public ModelsVo getModelDetail(Integer id, String identifier, String owner, String version) throws Exception { | |||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| String ci4sUsername = loginUser.getUsername(); | String ci4sUsername = loginUser.getUsername(); | ||||
| String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); | String gitLinkUsername = loginUser.getSysUser().getGitLinkUsername(); | ||||