Giter Site home page Giter Site logo

qihoo360 / wayne Goto Github PK

View Code? Open in Web Editor NEW
3.7K 156.0 833.0 20.36 MB

Kubernetes multi-cluster management and publishing platform

Home Page: http://360yun.org/

License: Other

Dockerfile 0.06% Makefile 0.05% Shell 0.36% Go 24.20% HTML 20.33% TypeScript 53.28% JavaScript 0.13% Python 0.02% SCSS 1.58%
docker kubernetes kubernetes-cluster wayne

wayne's Introduction

Wayne

Build Statue Build Tag License Go Report Card

English | 中文

Wayne is a universal, web-based Kubernetes multi-cluster management platform. It reduces service access costs by visualizing Kubernetes object template editing. With a complete permission management system and adapting to multi-tenant scenarios, it is a publish platform suitable for enterprise-level clusters.

Wayne has been serving 360 search on a large scale, carrying most of the online services, stably managing nearly a thousand applications, tens of thousands of containers, running for more than two years, withstood the test of production.

Why Named Wayne:Most of the projects developed by the team of 360 ​​Search Private Cloud are named after DC comics, and Wayne is no exception. "Wayne" is the name of the famous superhero, Batman Bruce Wayne.

Dashboard

Features

  • Permissions management based on RBAC (Role based access control): Users are associated with departments and projects through roles, and department roles allow operations department resources, and project roles allow operation of project resources, which is more suitable for multi-tenant scenarios.
  • Simplified the process of kubernetes object creation: Provides a basic Kubernetes object configuration file addition method, while supporting advanced mode to directly edit Json/Yaml files to create Kubernetes objects.
  • LDAP/OAuth 2.0/DB Multiple login mode support: Integrate enterprise-level LDAP login and DB login mode, and also enable OAuth2 login.
  • Support multi-cluster, multi-tenancy: You can manage multiple Kubernetes clusters at the same time, and add specific configurations to each other, making it easier for multi-cluster and multi-tenant management.
  • Provide a complete auditing module: Wayne provides a complete auditing module (really named audit) for each operation, tracking for operational history, and support for user-defined webhook.
  • Provide APIKey-based open interface calls: Users can apply for related APIKeys and manage their own departments and projects. Operation and maintenance personnel can also apply for global APIKey for global management of specific resources.
  • Keep a complete release history: Users can easily find any historical release, easily roll back, and update Kubernetes resources based on a specific historical version.
  • Complete resource reporting: Users can easily access reports and charts of resource usage and historical online frequency (days) and other basic data.
  • Provide a Web shell based on strict permission checking: Users can enter the published Pod through the Web shell to operate, with full permission verification.
  • Provide an in-site notification system: facilitates administrators to push clusters, service notifications, and troubleshooting reports.

Architecture

The whole system adopts the separation of front and back ends, in which the front end uses Angular framework for data interaction and display, and the Ace editor is used for Kubernetes resource template editing. The backend uses the Beego framework for data interface processing, Client-go to interact with Kubernetes, and data for MySQL storage.

Architecture

Component

  • Web UI:Provide complete business development and platform operation and maintenance experience.
  • Worker:Extend a range of message queue-based features, such as auditing components such as Audit and Webhooks.

Dependence

Quickly Start

  • Clone
$ git clone https://github.com/Qihoo360/wayne.git
  • Start Wayne

    Start server by docker-compose at Wayne project.

$ docker-compose -f ./hack/docker-compose/docker-compose.yaml up

With the above command, you can access the local Wayne from http://127.0.0.1:4200, the default administrator account admin:admin.

Note: After Wayne is started, you need to configure information such as cluster and Namespace for normal use. See details Cluster Configuration

Document

Contact Us

Mail

[email protected]

wayne's People

Contributors

70data avatar benniemeng avatar chengyumeng avatar chinaboard avatar chisana-mori avatar codeb2cc avatar cugxuan avatar daigong avatar dangzhiqiang avatar fm2022aa avatar gaulzhw avatar gotoworld avatar hz89 avatar iyacontrol avatar jayryu avatar kofj avatar luolizhi avatar lx1036 avatar olivewind avatar silenceshell avatar swiftslee avatar tbag2011 avatar wilhelmguo avatar xiaotuanyu120 avatar xu42 avatar zeusro avatar zhangguanzhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wayne's Issues

resource api/v1/kubernetes/namespaces 报错500

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '前台'

Expected behavior
A clear and concise description of what you expected to happen.

  • 不报错,可正常使用

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

怎么利用wayne进行灰度发布、部署回滚、SLB或服务注册中心联动

Is your feature request related to a problem? Please describe.
生产环境的应用发布通常需要灰度,如果灰度有问题需要快速回滚,wayne怎么做到这点?
网关服务需要联动SLB,内部服务可能需要联动服务注册和服务发现中心,wayne怎么做到这点?
从代码没有明确看到相关代码,请解答或帮忙指引下

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

migration from exist kubernetes clusters

Is your feature request related to a problem? Please describe.
user want to migration from exist kubernetes clusters
ex Deployment, Service...

Describe the solution you'd like

read all resource form kubernetes, user select one, and click import, then deal labels and auto create resource and tpl.

在k8s中启动报错

kubectl create -f hack/kubernetes
执行上边的命令创建项目后,infra-wayne这个pod启动失败并有如下错误:

[ORM]2018/11/20 10:58:03 unsupport orm tag int
[ORM]2018/11/20 10:58:03 unsupport orm tag bool
[ORM]2018/11/20 10:58:03 unsupport orm tag int
[ORM]2018/11/20 10:58:03 unsupport orm tag bool
[ORM]2018/11/20 10:58:03 register db Ping default, invalid DSN: did you forget to escape a param value?
panic: register db Ping default, invalid DSN: did you forget to escape a param value?

goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.InitDb()
/go/src/github.com/Qihoo360/wayne/src/backend/initial/db.go:25 +0x161
github.com/Qihoo360/wayne/src/backend/cmd/apiserver.run(0x1e43880, 0x1e704a0, 0x0, 0x0)
/go/src/github.com/Qihoo360/wayne/src/backend/cmd/apiserver/apiserver.go:23 +0x26
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).execute(0x1e43880, 0x1e704a0, 0x0, 0x0, 0x1e43880, 0x1e704a0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:766 +0x2c1
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1e433c0, 0x0, 0x1e43620, 0x1e43ae0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:852 +0x30a
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).Execute(0x1e433c0, 0xc4206c9f78, 0xc4200a4058)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:800 +0x2b
main.main()
/go/src/github.com/Qihoo360/wayne/src/backend/main.go:12 +0x53

configmap配置如下:

kind: ConfigMap
metadata:
  labels:
    app: infra-wayne
  name: infra-wayne
  namespace: default
data:
  app.conf: |-
    appname = wayne
    httpport = 8080
    runmode = prod
    autorender = false
    copyrequestbody = true
    StaticDir = public:static
    EnableDocs = true
    EnableAdmin = true
    DBName = wayne
    DBTns = tcp(10.10.99.225:3306)
    DBUser = root
    DBPasswd = root

International support

Is your feature request related to a problem? Please describe.
International support,could switch language by frontend selected box.
image

Describe the solution you'd like
i18n

PVC详情的扩展看板功能无效,js错误 Uncaught TypeError: Cannot read property 'nativeElement' of undefined

Describe the bug
A clear and concise description of what the bug is.

  • PVC详情的扩展看板功能无效,js错误 Uncaught TypeError: Cannot read property 'nativeElement' of undefined

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'PVC详情'
  2. Click on '扩展看板'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

在前台界面,选择“部门概览”,再选择“上线记录”会报错

点击前台界面的“上线记录”,报错

操作步骤

  1. 进入前台界面
  2. 点击“部门概览”
  3. 选择“上线记录”
  4. 提示报错,报错信息如下:
    Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'wayne.a.create_time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

docker启动不行

启动命令docker run --rm -v /opt/wayne/conf/app.conf:/opt/wayne/conf/app.conf -p 8080:8080 360cloud/wayne /opt/wayne/backend apiserver

报错
[ORM]2018/11/20 02:35:36 register db Ping default, invalid DSN: did you forget to escape a param value?
panic: register db Ping default, invalid DSN: did you forget to escape a param value?

为命名空间或项目配置用户出错

设置提交后,UI弹出以下错误。

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'wayne.T0.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

看不到部署更新功能

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

switch start_time or end_time to query online statistics, api/v1/publish/statistics报错400

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '上线次数统计'
  2. Click on '更换start_time or end_time'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

  • 可按所选时间范围查询上线次数统计
    Screenshots
    If applicable, add screenshots to help explain your problem.
    image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

import package error

Describe the bug
report "no Go files in $GOPATH/src/github.com/Qihoo360/wayne/src/backend/plugins" when i git clone this repo, i try to git pull this repo Qihoo360/wayne-backend-plugins,but can't fix this problem。

To Reproduce
Steps to reproduce the behavior:

  1. git clone this repo
  2. vscode open this project
  3. go run main.go
➜  backend git:(master) go run main.go
routers/router.go:50:2: no Go files in GOPATH/src/github.com/Qihoo360/wayne/src/backend/plugins
  1. go to dir src/backend/plugins
Empty file directory
  1. open link https://github.com/Qihoo360/wayne/tree/master/src/backend
plugins @ 9d23dac

Desktop (please complete the following information):

  • OS: [10.14.1 ]
  • Browser [chrome]
  • Version [e.g. 22]
  • Go Version:- Go version:go1.11.1 darwin/amd64
  • vscode

Server Version

- Wayne version:master
- Go version:go1.11.1 darwin/amd64

注销登录,web会抖动一次,后端currentuser报错401

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '注销登录'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

English version of README?

Context

I'd like to recommend wayne to other co-workers who cannot read Chinese. It would be great to have English version of its documentation.

Can't make syncdb ?

Describe the bug

> ~/D/g/s/g/Q/wayne on master ⨯ make syncdb                                                                                                                               17:40:07
go run src/backend/database/syncdb.go orm syncdb
[ORM]2018/11/20 17:40:18 unsupport orm tag int
[ORM]2018/11/20 17:40:18 unsupport orm tag bool
[ORM]2018/11/20 17:40:18 unsupport orm tag int
[ORM]2018/11/20 17:40:18 unsupport orm tag bool
2018/11/20 17:40:18.818 [I] /Users/michael2008s/Develop/golang/src/github.com/Qihoo360/wayne/src/backend/plugins/service/controller no changed
2018/11/20 17:40:18.818 [I] /Users/michael2008s/Develop/golang/src/github.com/Qihoo360/wayne/src/backend/plugins/service/controller no changed
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

runtime stack:
runtime.throw(0x1eb14f7, 0xe)
	/usr/local/Cellar/go/latest/libexec/src/runtime/panic.go:608 +0x72
runtime.newstack()
	/usr/local/Cellar/go/latest/libexec/src/runtime/stack.go:1008 +0x729
runtime.morestack()
	/usr/local/Cellar/go/latest/libexec/src/runtime/asm_amd64.s:429 +0x8f

goroutine 1 [running, locked to thread]:
runtime.makemap_small(0x0)
	/usr/local/Cellar/go/latest/libexec/src/runtime/map.go:287 +0x88 fp=0xc0fbf8e360 sp=0xc0fbf8e358 pc=0x100efa8
github.com/Qihoo360/wayne/src/vendor/github.com/astaxie/beego/config.(*IniConfig).parseData(0x2adc568, 0xc217c2e600, 0x51, 0xc217c62000, 0x801, 0xa01, 0x0, 0x0, 0x0)
	/Users/michael2008s/Develop/golang/src/github.com/Qihoo360/wayne/src/vendor/github.com/astaxie/beego/config/ini.go:63 +0x61 fp=0xc0fbf8e790 sp=0xc0fbf8e360 pc=0x1680b11

Cannot read property 'loadChildren' of null

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
run npm run start ,then see ->
image
angular-cli version ->
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

集群name不是全部大写,调用开放api报错

Describe the bug
当创建的集群name不是全部大写时,调用开放api会报{"code":500,"errors":["Failed to get k8s client list!"]}错误

To Reproduce
Steps to reproduce the behavior:

  1. 创建集群,名称为K8s-Test
  2. 调用开放接口
    http://ip:port/openapi/v1/gateway/action/get_deployment_status?deployment=...&namespace=...&cluster=K8s-Test&apikey=...
  3. 返回错误信息

Expected behavior
希望返回正确的结果

Screenshots

Desktop (please complete the following information):

  • OS: [Windows 10]
  • Browser [fiddler]
  • Version [5.0.2]

Server Version

- Dashboard version:
- Kubernetes version: 1.12.0
- Wayne version: 1.0.0
- Node.js version:
- Go version:

Additional context

您好,我每点一下界面都会报错为什么呢?帮忙解答下

2018/11/20 19:26:43.275 [E] [api.go:200] System error.
2018/11/20 19:26:43.350 [E] [api.go:200] System error.
2018/11/20 19:27:29.651 [E] [api.go:200] System error.
2018/11/20 19:27:34.927 [E] [api.go:200] System error.
2018/11/20 19:27:35.884 [E] [api.go:200] System error.
2018/11/20 19:27:38.156 [E] [api.go:200] System error.
2018/11/20 19:27:45.355 [E] [api.go:200] System error.
2018/11/20 19:28:01.997 [E] [api.go:200] System error.
2018/11/20 19:28:27.279 [E] [api.go:200] System error.

后台删除的项目,在回收站无法恢复

点击恢复,前端页面报错如下:
polyfills.2b8f059338ffd37a0cff.js:1 Uncaught TypeError: Cannot read property 'id' of null
at l.update (main.0486880343cb904e63f1.js:1)
at l.recoverApp (main.0486880343cb904e63f1.js:1)
at Object.handleEvent (main.0486880343cb904e63f1.js:1)
at Object.handleEvent (vendor.b80bf06ab297c170d1a7.js:1)
at Object.handleEvent (vendor.b80bf06ab297c170d1a7.js:1)
at gi (vendor.b80bf06ab297c170d1a7.js:1)
at vendor.b80bf06ab297c170d1a7.js:1
at HTMLButtonElement. (vendor.b80bf06ab297c170d1a7.js:1)
at e.invokeTask (polyfills.2b8f059338ffd37a0cff.js:1)
at Object.onInvokeTask (vendor.b80bf06ab297c170d1a7.js:1)

run "go get https://github.com/Qihoo360/wayne " error

Describe the bug
But what I ran was "go get https://github.com/Qihoo360/wayne" then I get back this big error message:"package https:/github.com/Qihoo360/wayne: "https://" not allowed in import path".

Suggestion
My suggestion to this problem is as follows:
Run"go get github.com/Qihoo360/wayne " instead.

Desktop

  • OS:[Ubuntu ]
  • Version [16.04LTS]

Server Version

  • Kubernetes version: v1.11.0
  • Go version:go1.11.1 linux/amd64

服务启动时,报没有数据库(已解决)

已解决:
刚看了一下代码,试了一下,这是因为初始化数据库是从创建数据库开始的。
自己自己之前创建了这个同名数据库导致的初始化数据库部分没有执行。
把同名数据库删掉,或在配置文件中换个名字。就OK了。

Describe the bug
服务启动时,报没有数据库
image
下代码看了一下,初台化数据库的代码被注释了?
image

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

`dev.conf `挂在 `/tmp`下不是很友好,电脑重启需重新install

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '电脑restart'
  2. Click on 'docker run wanye'
  3. See error
panic: read /opt/wayne/conf/dev.conf: is a directory

goroutine 1 [running]:
xxxxxxxxx

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

About browser rendering - 导致MetaData信息出现错乱

Describe the bug
A clear and concise description of what the bug is.

  • 浏览器渲染问题,导致MetaData信息出现错乱

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

Users want Wayne add a function in the Oauth 2.0 login module that map user information fields.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

计划任务提交后报错,并无法再点开高级配置

#点创建计划任务模版
image
#使用官方提供的yaml文件(在系统中已经成功apply并执行)
image
#手动补全内容,然后点击提交
image
#提交后,提交按钮变成灰色,f12发现报错,并且点高级配置没有反应,需要刷新页面
image

创建命名空间

Describe the bug
界面创建成功了,但是k8s后台查不到创建的命名空间

coding style

Is your feature request related to a problem? Please describe.

Describe the solution you'd like
采用某种方式约束编码规范,以保证整个项目的编码风格一致

Describe alternatives you've considered

  1. 制定编码规范或采用某现成编码规范
  2. 使用 git hook 等方式强制约束每一个 commit,以此约束每一个提交上来的 commit 都是符合规范的
  3. CI 流程插入编码规范检查这一步,以此约束每一个被 merge 的 pr 都是符合规范的

Additional context
项目开源初期,编码规范和协作流程比代码本身更值得投入时间

建议收缩侧边栏后tooltips多级菜单仍可以展示二级菜单内容

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.
image

File to import not found or unreadable: bootstrap/scss/normalize

➜  frontend git:(master) ✗ cnpm run build

> [email protected] build /GOPATH/src/github.com/Qihoo360/wayne/src/frontend
> node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --aot --prod --build-optimizer --base-href "/public/"


Date: 2018-11-22T15:38:20.305Z
Hash: e85553e8979192228377
Time: 10662ms
chunk {scripts} scripts.481127d91ac897bf144f.js (scripts) 627 kB  [rendered]
chunk {0} runtime.a66f828dca56eeb90e02.js (runtime) 1.05 kB [entry] [rendered]
chunk {1} styles.557610e77b32cb6cb9c8.css (styles) 13.1 kB [initial] [rendered]
chunk {2} polyfills.e7f5364b276024e19b0b.js (polyfills) 130 bytes [initial] [rendered]
chunk {3} main.0594610c91de797f492a.js (main) 128 bytes [initial] [rendered]

ERROR in ./src/theme/theme.scss
Module build failed: ModuleBuildError: Module build failed:
@import 'bootstrap/scss/normalize';
^
      File to import not found or unreadable: bootstrap/scss/normalize.
      in /GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/@clr/ui/src/utils/_dependencies.clarity.scss (line 11, column 1)
    at runLoaders (/GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/webpack/lib/NormalModule.js:252:20)
    at /GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/loader-runner/lib/LoaderRunner.js:364:11
    at /GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/loader-runner/lib/LoaderRunner.js:230:18
    at context.callback (/GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at Object.render [as callback] (/GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/sass-loader/lib/loader.js:52:13)
    at Object.done [as callback] (/GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/neo-async/async.js:8077:18)
    at options.error (/GOPATH/src/github.com/Qihoo360/wayne/src/frontend/node_modules/node-sass/lib/index.js:294:32)
ERROR in app/portal/portal.module.ts(57,5): Error during template compile of 'PortalModule'
  Could not resolve ../../../lib/portal/library-portal.module relative to /GOPATH/src/github.com/Qihoo360/wayne/src/frontend/src/app/portal/portal.module.ts..
src/app/portal/portal-routing.module.ts(32,28): error TS2307: Cannot find module '../../../lib/portal/library-routing-portal'.
src/app/portal/portal.module.ts(32,35): error TS2307: Cannot find module '../../../lib/portal/library-portal.module'.
src/app/admin/admin-routing.module.ts(54,27): error TS2307: Cannot find module '../../../lib/admin/library-routing-admin'.
src/app/admin/admin.module.ts(36,34): error TS2307: Cannot find module '../../../lib/admin/library-admin.module'.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --aot --prod --build-optimizer --base-href "/public/"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

资源单位的显示

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  • 如:创建部署

Expected behavior
A clear and concise description of what you expected to happen.
期望有对应资源单位的显示

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.
image

未校验用户邮箱格式

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '注册用户'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

  • 有正确的格式校验

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

APIKeys 报错403

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'APIKeys '

Expected behavior
A clear and concise description of what you expected to happen.

  • 可以正确访问

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

已删除的集群,wayne 还会尝试连接集群

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

通过 web-ui 接入集群时候,填错 yaml,导致集群不可达时候,删除该集群
但是 wayne 一直在尝试连接这个已经被删除的集群,重启可以解决

image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Server Version

- Dashboard version:
- Kubernetes version:
- Wayne version:
- Node.js version:
- Go version:

Additional context
Add any other context about the problem here.

docker 容器启动不了, 没有创建表

Describe the bug
docker 容器启动不了, 没有创建表。数据库确定能连接

Screenshots
docker 容器启动不了, 没有创建表
image

Desktop (please complete the following information):

  • OS: Mac OS

panic: dial tcp 127.0.0.1:3306: connect: connection refused

[root@kube-m1 kubernetes]# kubectl logs -f infra-wayne-6d55fcf578-wknk6 wayne
[ORM]2018/11/19 14:35:49 unsupport orm tag int
[ORM]2018/11/19 14:35:49 unsupport orm tag bool
[ORM]2018/11/19 14:35:49 unsupport orm tag int
[ORM]2018/11/19 14:35:49 unsupport orm tag bool
panic: dial tcp 127.0.0.1:3306: connect: connection refused

goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.InitDb()
/go/src/github.com/Qihoo360/wayne/src/backend/initial/db.go:25 +0x161
github.com/Qihoo360/wayne/src/backend/cmd/apiserver.run(0x1e43880, 0x1e704a0, 0x0, 0x0)
/go/src/github.com/Qihoo360/wayne/src/backend/cmd/apiserver/apiserver.go:23 +0x26
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).execute(0x1e43880, 0x1e704a0, 0x0, 0x0, 0x1e43880, 0x1e704a0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:766 +0x2c1
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1e433c0, 0x0, 0x1e43620, 0x1e43ae0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:852 +0x30a
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).Execute(0x1e433c0, 0xc4206d5f78, 0xc4200a4058)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:800 +0x2b
main.main()
/go/src/github.com/Qihoo360/wayne/src/backend/main.go:12 +0x53
[root@kube-m1 kubernetes]# kubectl logs -f infra-wayne-6d55fcf578-wknk6
[ORM]2018/11/19 14:35:49 unsupport orm tag int
[ORM]2018/11/19 14:35:49 unsupport orm tag bool
[ORM]2018/11/19 14:35:49 unsupport orm tag int
[ORM]2018/11/19 14:35:49 unsupport orm tag bool
panic: dial tcp 127.0.0.1:3306: connect: connection refused

goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.InitDb()
/go/src/github.com/Qihoo360/wayne/src/backend/initial/db.go:25 +0x161
github.com/Qihoo360/wayne/src/backend/cmd/apiserver.run(0x1e43880, 0x1e704a0, 0x0, 0x0)
/go/src/github.com/Qihoo360/wayne/src/backend/cmd/apiserver/apiserver.go:23 +0x26
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).execute(0x1e43880, 0x1e704a0, 0x0, 0x0, 0x1e43880, 0x1e704a0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:766 +0x2c1
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1e433c0, 0x0, 0x1e43620, 0x1e43ae0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:852 +0x30a
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).Execute(0x1e433c0, 0xc4206d5f78, 0xc4200a4058)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:800 +0x2b
main.main()
/go/src/github.com/Qihoo360/wayne/src/backend/main.go:12 +0x53
[root@kube-m1 kubernetes]# kubectl logs -f infra-wayne-6d55fcf578-wknk6
[ORM]2018/11/19 14:35:49 unsupport orm tag int
[ORM]2018/11/19 14:35:49 unsupport orm tag bool
[ORM]2018/11/19 14:35:49 unsupport orm tag int
[ORM]2018/11/19 14:35:49 unsupport orm tag bool
panic: dial tcp 127.0.0.1:3306: connect: connection refused

goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.InitDb()
/go/src/github.com/Qihoo360/wayne/src/backend/initial/db.go:25 +0x161
github.com/Qihoo360/wayne/src/backend/cmd/apiserver.run(0x1e43880, 0x1e704a0, 0x0, 0x0)
/go/src/github.com/Qihoo360/wayne/src/backend/cmd/apiserver/apiserver.go:23 +0x26
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).execute(0x1e43880, 0x1e704a0, 0x0, 0x0, 0x1e43880, 0x1e704a0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:766 +0x2c1
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1e433c0, 0x0, 0x1e43620, 0x1e43ae0)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:852 +0x30a
github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra.(*Command).Execute(0x1e433c0, 0xc4206d5f78, 0xc4200a4058)
/go/src/github.com/Qihoo360/wayne/src/vendor/github.com/spf13/cobra/command.go:800 +0x2b
main.main()
/go/src/github.com/Qihoo360/wayne/src/backend/main.go:12 +0x53

When administrator create namespace at backend,Wayne should also create a namespace on k8s.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

启动后一直报这个错误,web页面访问不了

2018/11/22 15:46:00.955 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:06.000 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:11.047 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:16.080 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:21.113 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:26.146 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:31.307 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:36.356 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:41.389 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:46.431 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:51.474 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:46:56.510 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:01.671 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:06.705 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:11.749 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:16.786 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:21.827 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:26.869 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:32.033 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:37.067 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:42.110 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist
2018/11/22 15:47:47.150 [E] [client.go:59] build apiserver client get all cluster error. Error 1146: Table 'wayne.cluster' doesn't exist

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.