Compare commits

..

1573 Commits

Author SHA1 Message Date
KubeSphere CI Bot
60e58964a6 Merge pull request #3350 from benyp/release-3.0
fix duplicate args error
2021-02-18 10:47:26 +08:00
zhouyue
ccd7a306de fix duplicate args error
Signed-off-by: Zhou Yue <zhouyue@fin-shine.com>
2021-02-07 15:43:37 +08:00
KubeSphere CI Bot
e8505c12c6 Merge pull request #2967 from imjoey/release-3.0/backport/2931+2934
[release-3.0] Backport 2931 2934 from master branch
2020-09-10 10:46:12 +08:00
zryfish
d06c55a221 Update build.yml
Add release branch to pull request ci
2020-09-08 17:32:26 +08:00
shaowenchen
56ebafcfd5 fix: scm choices
Signed-off-by: shaowenchen <mail@chenshaowen.com>
(cherry picked from commit 018a18e784)
2020-09-08 16:59:30 +08:00
shaowenchen
1adb9b4aba fix crendential sync
Signed-off-by: shaowenchen <mail@chenshaowen.com>
(cherry picked from commit 2dcabb0bdb)
2020-09-08 16:59:30 +08:00
zryfish
f5b3491d7f fix unauthorized if using token kubeconfig (#2930)
Signed-off-by: Jeff <jeffzhang@yunify.com>
2020-08-27 22:51:00 +08:00
KubeSphere CI Bot
d6ab60bdb4 Merge pull request #2910 from shaowenchen/fix_multibranch_sonarqube
fix:multibranch sonarqube missing
2020-08-23 08:07:59 +08:00
shaowenchen
2bdf23ae98 fix:multibranch sonarqube missing
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-08-21 15:21:46 +08:00
KubeSphere CI Bot
fddf7202e8 Merge pull request #2907 from wansir/master
fix: missing role template after upgrade
2020-08-20 23:39:57 +08:00
hongming
66d79aaf75 fix: missing role template after upgrade
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-20 23:06:59 +08:00
zryfish
1fcef6966f fix search node with invalid name bug (#2902)
Signed-off-by: Jeff <jeffzhang@yunify.com>
2020-08-20 15:04:44 +08:00
shaowenchen
8b4028cc30 fix jenkins download (#2898)
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-08-20 09:57:58 +08:00
zryfish
b5d9d29fc6 fix servicemesh strategy not applied bug (#2892)
Signed-off-by: Jeff <jeffzhang@yunify.com>
2020-08-19 14:50:18 +08:00
zryfish
9eba26b707 fix node resources requests not returned bug (#2877)
Signed-off-by: Jeff <jeffzhang@yunify.com>
2020-08-14 17:34:20 +08:00
KubeSphere CI Bot
2aa120f8f5 Merge pull request #2871 from huanggze/master
fix: time skew in monitoring responses
2020-08-14 09:42:55 +08:00
huanggze
0f09020359 fix: time skew in monitoring responses
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-08-13 17:33:36 +08:00
zryfish
95cd23b7a3 fix servicemesh controller nil pointer exception (#2870)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-13 15:33:00 +08:00
zryfish
6f367e4f22 fix some swagger json errors (#2869)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-13 13:24:58 +08:00
KubeSphere CI Bot
2ac81e9962 Merge pull request #2852 from wansir/iam
fix: can't list pipeline if no global role assigned
2020-08-12 14:18:55 +08:00
hongming
aa6713c2d0 can't list pipeline if no global role assigned
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-12 13:58:24 +08:00
KubeSphere CI Bot
3f6af47013 Merge pull request #2846 from huanggze/master
fix: exported logs are incomplete
2020-08-12 10:45:55 +08:00
huanggze
57adb94911 fix: exported logs are incomplete
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-08-11 15:12:46 +08:00
KubeSphere CI Bot
7257455c40 Merge pull request #2839 from huanggze/master
fix: resources_filter not working for workload metric query
2020-08-11 15:01:54 +08:00
KubeSphere CI Bot
6a28091284 Merge pull request #2827 from zheng1/op_bugfix1
Bugfix: catch error from ParseConditions and refactor ParseConditions
2020-08-11 12:53:55 +08:00
zryfish
2064340c3a fix job search bug (#2840)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-11 11:20:58 +08:00
huanggze
575513182b fix: resources_filter not working for workload metric query
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-08-11 11:19:20 +08:00
zryfish
21a5f83082 fix unable to setup webhook server under leader election (#2830)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-10 15:14:20 +08:00
Zhengyi Lai
3c48abcc47 Bugfix: catch error from ParseConditions and refactor ParseConditions
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-08-10 13:54:55 +08:00
KubeSphere CI Bot
48e77cbb79 Merge pull request #2798 from huanggze/master
fix: calulating days between two timestamps
2020-08-10 10:33:54 +08:00
KubeSphere CI Bot
f9d7a4f62a Merge pull request #2821 from wansir/iam
fix member detail API
2020-08-10 10:19:54 +08:00
hongming
9e35ff1678 fix member detail API
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-09 10:52:28 +08:00
KubeSphere CI Bot
f64cdf733f Merge pull request #2796 from wansir/iam
fix password modify logic
2020-08-07 18:20:53 +08:00
hongming
b188dcb8a2 fix password modify logic
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-07 16:55:19 +08:00
huanggze
76e7805642 fix: calulating days between two dates
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-08-07 04:12:47 +08:00
KubeSphere CI Bot
50a50e5213 Merge pull request #2782 from zryfish/fix_miss_caching_federatedworkspace
fix mistakenly caching federatedworkspace in non multicluster env
2020-08-06 18:24:53 +08:00
Jeff
028deb0482 fix mistakenly cache federatedworkspace in non multicluster env
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-06 18:11:48 +08:00
KubeSphere CI Bot
723e9e27d7 Merge pull request #2770 from wansir/tenant
fix workspacetemplate patch API not working
2020-08-06 16:31:53 +08:00
hongming
e8c1acdcf3 fix workspacetemplate patch API not working
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-06 16:17:49 +08:00
zryfish
9ef0a87e4a fix generated kubeconfig bug (#2776)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-05 17:48:05 +08:00
zryfish
dbc33fe5d2 add license header (#2761)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-05 15:54:17 +08:00
hongming
719c687fcb fix kubectl pod creation failed (#2771)
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-05 11:36:59 +08:00
KubeSphere CI Bot
fd4790a64f Merge pull request #2766 from wansir/tenant
fix kubectl pod owner reference
2020-08-04 17:35:52 +08:00
hongming
0448522901 fix kubectl pod owner reference
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-04 16:32:04 +08:00
KubeSphere CI Bot
b030e9c2dd Merge pull request #2760 from wansir/tenant
fix labelSelector not working
2020-08-04 11:48:53 +08:00
hongming
1d9c9bc0c2 fix labelSelector not working
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-04 11:35:53 +08:00
zryfish
1cfac3721d Update stale.yml 2020-08-04 11:01:45 +08:00
KubeSphere CI Bot
22ee45d796 Merge pull request #2759 from wansir/iam
fix role patch API
2020-08-04 09:56:52 +08:00
zryfish
774dc78a10 Update stale.yml 2020-08-04 09:20:15 +08:00
hongming
fbfbb8b8d2 fix role patch API
Signed-off-by: hongming <talonwan@yunify.com>
2020-08-03 22:33:54 +08:00
zryfish
2d60c57942 Rename stale.yaml to stale.yml 2020-08-03 15:53:10 +08:00
zryfish
171322040e rename stale bot configuration file name (#2753)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-03 15:46:50 +08:00
zryfish
56fd0deef3 fix some bugs (#2751)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-03 14:49:40 +08:00
KubeSphere CI Bot
f43047069c Merge pull request #2730 from wansir/iam
remove LastAppliedConfig annotation after password encrypted
2020-08-03 13:02:52 +08:00
zryfish
0a893d20bc fix missing cache federatedapplication (#2733)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-08-01 13:22:39 +08:00
KubeSphere CI Bot
b74d5a336b Merge pull request #2729 from shaowenchen/add_query_parameter_for_devops_credential
add query parameter for devops credential
2020-08-01 11:18:51 +08:00
KubeSphere CI Bot
2dd0efb092 Merge pull request #2719 from wansir/rolebase
initial role differentiation of DevOps project and namespace
2020-08-01 09:51:52 +08:00
hongming
6acea75a76 remove LastAppliedConfig annotation after password encrypted
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-31 23:57:42 +08:00
hongming
03e7987655 initial role differentiation of DevOps project and namespace
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-31 23:27:20 +08:00
shaowenchen
b82dc56eee add query parameter for devops credential
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-31 20:36:04 +08:00
KubeSphere CI Bot
2c2f01d018 Merge pull request #2727 from shaowenchen/improvement_promopt_info
add more details info for jenkins api
2020-07-31 20:35:51 +08:00
zryfish
bf55d23de9 add missing federated resources (#2728)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-31 18:22:23 +08:00
shaowenchen
9cb4935b92 add more details info for jenkins api
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-31 18:00:15 +08:00
zryfish
4702beb6ac add federated resource api (#2725)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-31 17:12:58 +08:00
KubeSphere CI Bot
74533cb533 Merge pull request #2718 from wanjunlei/master
fix bug auditing can't search anything using keyword with '-' for fuzzy
2020-07-31 10:12:51 +08:00
wanjunlei
e71697f864 fix bug auditing can't search anything using keyword with '-' for fuzzy
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-30 22:39:14 +08:00
KubeSphere CI Bot
12ec25d449 Merge pull request #2685 from wansir/devops
legacy API compatibility
2020-07-30 20:13:51 +08:00
hongming
7884bcef95 legacy API compatibility
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-30 18:30:41 +08:00
zryfish
114fad5eb0 sanitizer error message to avoid emitting xss error message (#2712)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-30 17:45:29 +08:00
KubeSphere CI Bot
67c6a8c510 Merge pull request #2672 from wanjunlei/auditing-log
make ws admin can be aware of anything happened in its workspace.
2020-07-30 13:33:51 +08:00
KubeSphere CI Bot
5b02440628 Merge pull request #2708 from wansir/tenant
fix tenant resource list API
2020-07-30 13:17:51 +08:00
hongming
13ffbe8968 fix tenant resource list API
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-30 11:48:55 +08:00
KubeSphere CI Bot
b71ce47788 Merge pull request #2706 from wansir/iam
fix request info resource scope
2020-07-30 10:09:51 +08:00
KubeSphere CI Bot
3a703d4371 Merge pull request #2703 from shaowenchen/fix_to_json
add parameter for to_json
2020-07-30 09:52:52 +08:00
KubeSphere CI Bot
9834baf230 Merge pull request #2688 from huanggze/master
Allow global admins to view deleted namespace logs
2020-07-30 09:50:51 +08:00
hongming
02c71e9b79 fix request info resource scope
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-30 00:23:29 +08:00
zryfish
3c8fbe39b9 fix websocket lost query string bug (#2705)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-29 21:51:55 +08:00
wanjunlei
6f90e24b83 change resourceGetter to devopsGetter
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-29 19:31:20 +08:00
wanjunlei
9306b6abf7 change match_phrase_prefix to match_phrase
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-29 18:48:34 +08:00
wanjunlei
b5392b97c0 add ns and ws query parameter to es query body
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-29 18:48:34 +08:00
wanjunlei
b51a5c22f2 resolve conversation
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-29 18:48:34 +08:00
wanjunlei
713c646bfd make ws admin aware of anything happened in its workspace.
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-29 18:48:34 +08:00
shaowenchen
62a2cc02b0 add parameter for to_json
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-29 18:12:53 +08:00
zryfish
388729e9b1 fix incorrect error log (#2694)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-29 13:25:52 +08:00
huanggze
70d0d5fe18 Allow global admins to view deleted namespace logs
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-07-29 10:26:38 +08:00
zryfish
93b123c1f0 add last login time for user (#2679)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-28 17:26:13 +08:00
KubeSphere CI Bot
e4510972dd Merge pull request #2676 from wansir/devops
fix panic
2020-07-28 16:03:51 +08:00
hongming
e494cae010 fix panic
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-28 14:16:23 +08:00
KubeSphere CI Bot
822f5f25d7 Merge pull request #2599 from duanjiong/networkpolicy-fix
add new parameters allowedIngressNamespaces for user customization
2020-07-28 14:05:51 +08:00
KubeSphere CI Bot
324bc38ea2 Merge pull request #2668 from min-zh/storage-capability
get storage capapbility from provioner capability first
2020-07-28 11:21:50 +08:00
zhangmin
a87892f901 get storage capapbility from provioner capability first
Signed-off-by: zhangmin <arminzhang@yunify.com>
2020-07-28 11:15:57 +08:00
KubeSphere CI Bot
659316da9a Merge pull request #2661 from wansir/devops
fix: devops IAM bugs
2020-07-28 11:05:51 +08:00
Duan Jiong
eb21606602 networkpolicy: add new parameters allowedIngressNamespaces for user customization
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-07-28 10:55:16 +08:00
hongming
bda48c240f fix: devop IAM bugs
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-28 10:01:50 +08:00
KubeSphere CI Bot
afcd0efea2 Merge pull request #2629 from wansir/authorizer
Reorder request filters
2020-07-26 23:33:50 +08:00
zryfish
c5a63500a4 add application controller (#2652)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-26 23:11:56 +08:00
KubeSphere CI Bot
d4272ef4c5 Merge pull request #2639 from wansir/bug
fix: auth failed response
2020-07-26 19:26:50 +08:00
hongming
ffc78cbb94 fix: auth failed response
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-26 18:44:37 +08:00
KubeSphere CI Bot
5ba910ce37 Merge pull request #2634 from zheng1/refactor_op
Bugfix: the count of uncategory apps is incorrect
2020-07-26 14:23:50 +08:00
Zhengyi Lai
519d008db9 Bugfix: the count of uncategory apps is incorrect
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-07-26 13:11:39 +08:00
hongming
f8c0e9addc Reorder request filters
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-26 10:35:22 +08:00
KubeSphere CI Bot
72e9f7da90 Merge pull request #2596 from wanjunlei/master
fix bug multi tenant auditing, logging and event is incorrect
2020-07-25 22:30:50 +08:00
wanjunlei
bf87894512 resolve conversation
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-25 18:15:21 +08:00
KubeSphere CI Bot
9bb5427ee8 Merge pull request #2613 from wanjunlei/kubectl
add host local time to kubectl from toolbox
2020-07-25 14:29:50 +08:00
zryfish
051893eb71 Use 429 for auth limit exceeded requests (#2591)
* fix login with email

Signed-off-by: Jeff <zw0948@gmail.com>

* use 429 for auth limit exceeded error

Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-25 14:27:03 +08:00
wanjunlei
31d615fa84 add host local time to kubectl from toolbox
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-25 13:44:40 +08:00
wanjunlei
6585881d01 fix bug multi tenant auditing, logging and event is incorrect
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-25 12:19:29 +08:00
KubeSphere CI Bot
b814c5ba4f Merge pull request #2609 from wansir/master
fix RBAC authorizer
2020-07-25 10:09:50 +08:00
hongming
982ea74185 fix RBAC authorizer
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-25 09:51:39 +08:00
KubeSphere CI Bot
14462c3842 Merge pull request #2585 from shaowenchen/add_total_runs
fix query parameters
2020-07-24 17:28:50 +08:00
zryfish
93b7c30aea fix login with email (#2584)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-24 15:51:30 +08:00
shaowenchen
9f9d276cef fix query parameters
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-24 15:46:54 +08:00
zryfish
f1146f5d6c fix cannot create success login (#2576)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-24 13:09:38 +08:00
zryfish
06932926a0 fix creating login records for user failed (#2572)
Signed-off-by: Jeff <zw0948@gmail.com>

Co-authored-by: hongming <talonwan@yunify.com>
2020-07-23 23:36:11 +08:00
zryfish
3d74bb0589 login record CRD (#2565)
* Signed-off-by: hongming <talonwan@yunify.com>

support ldap identity provider

Signed-off-by: hongming <talonwan@yunify.com>

* add login record

Signed-off-by: Jeff <zw0948@gmail.com>

Co-authored-by: hongming <talonwan@yunify.com>
2020-07-23 22:10:39 +08:00
KubeSphere CI Bot
50a6c7b2b5 Merge pull request #2567 from zheng1/refactor_op
Bugfix: create repo have no workspace
2020-07-23 21:45:50 +08:00
Zhengyi Lai
36ec2cdc9e Bugfix: create repo have no workspace
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-07-23 21:03:13 +08:00
KubeSphere CI Bot
616fcb1740 Merge pull request #2334 from wansir/kubectl-image
Configuring kubectl image from command line
2020-07-23 15:00:49 +08:00
KubeSphere CI Bot
8699fc806b Merge pull request #2544 from wansir/status-code
conflict status code
2020-07-23 09:00:49 +08:00
KubeSphere CI Bot
971c1af0ef Merge pull request #2532 from junotx/master
fix events search bug when no events
2020-07-23 08:59:50 +08:00
KubeSphere CI Bot
d31a09e8c0 Merge pull request #2543 from wansir/federatednamespaces
fix federatednamespace resource scope
2020-07-23 08:55:49 +08:00
hongming
f7ea1603c6 conflict status code
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-23 03:09:29 +08:00
hongming
d1f98b3289 Configuring kubectl image from command line
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-23 02:29:56 +08:00
hongming
c103f47abd fix federatednamespace resource scope
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-22 22:42:53 +08:00
junotx
393386a32a fix events search bug when no events
Signed-off-by: junotx <junotx@126.com>
2020-07-22 21:40:37 +08:00
zryfish
f1af770965 Don't fail ci if coverage upload failed 2020-07-22 20:29:48 +08:00
KubeSphere CI Bot
da66157482 Merge pull request #2542 from zheng1/refactor_op
Bugfix: list repos
2020-07-22 19:34:50 +08:00
zryfish
24c06da9bc fix cronjob sort bug, daemonsets status bug, add ingress to v1alpha3 (#2541)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-22 19:33:25 +08:00
Zhengyi Lai
90e6565327 Bugfix: list repos
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-07-22 18:57:07 +08:00
KubeSphere CI Bot
1096eb8adb Merge pull request #2498 from wansir/federatednamespaces
add tenant federated namespaces API
2020-07-22 15:23:49 +08:00
KubeSphere CI Bot
2a388ad493 Merge pull request #2533 from min-zh/storage
fix pvc count of sc
2020-07-22 14:52:49 +08:00
KubeSphere CI Bot
26ac41d086 Merge pull request #2517 from shaowenchen/add_total_runs
add total num for runs
2020-07-22 13:19:49 +08:00
zhangmin
997cb0930d fix pvc count of sc
Signed-off-by: zhangmin <arminzhang@yunify.com>
2020-07-22 11:09:04 +08:00
shaowenchen
85f22cc2e1 add total num for runs
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-22 10:53:06 +08:00
KubeSphere CI Bot
ae2f4a8abe Merge pull request #2526 from wansir/log
fix: exit without error log
2020-07-22 10:40:49 +08:00
hongming
a42fa6afaf fix: exit without error log
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-21 19:15:21 +08:00
zryfish
35989d911c use root for controller manager cause we need to access csi plugins sock (#2505)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-20 22:36:18 +08:00
KubeSphere CI Bot
bc419d02cb Merge pull request #2466 from wanjunlei/auditing-es
reuse package esutil to improve auditing log search performance
2020-07-20 22:21:50 +08:00
hongming
3525fc5507 add federatednamespaces tenant API
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-20 17:39:46 +08:00
KubeSphere CI Bot
b2402105f8 Merge pull request #2441 from junotx/master
lazy init events client and optimize events search
2020-07-20 14:56:49 +08:00
KubeSphere CI Bot
bd6f46a5c9 Merge pull request #2427 from wanjunlei/auditing-log
ignore dryRun k8s request when auditing
2020-07-20 14:55:49 +08:00
zryfish
71b8d96a45 change image user kubesphere to group docker (#2487)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-20 14:54:04 +08:00
zryfish
8241a0f9c5 cache v1beta1 crd instead of v1 version, cause v1 is not available in kubernetes v1.15.x (#2482)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-20 10:03:26 +08:00
KubeSphere CI Bot
9ed96cddc3 Merge pull request #2480 from wansir/2475
fix: Change user role failed
2020-07-20 09:45:49 +08:00
hongming
d7440ae0f9 fix: Change user role failed
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-19 11:19:26 +08:00
zryfish
89f850466d fix host cluster reconcile bug (#2479)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-19 01:22:32 +08:00
wanjunlei
ccc6ba1e80 ignore unavailable index
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-17 18:14:09 +08:00
wanjunlei
5d99024f0b resovle conversation
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-17 15:39:52 +08:00
wanjunlei
a0255d6409 ignore dryRun k8s request when auditing
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-17 15:39:36 +08:00
wanjunlei
e913957e27 reuse package esutil to improve auditing log search performance
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-07-17 15:33:17 +08:00
KubeSphere CI Bot
b7eb64dd95 Merge pull request #2446 from wansir/label-selector
fix: migration some resource API to v1alpha3
2020-07-17 12:59:48 +08:00
KubeSphere CI Bot
f706d264dd Merge pull request #2392 from shaowenchen/fix_devops
add interface for iam
2020-07-17 12:57:48 +08:00
zryfish
97580d3776 use 8443 for webhook port (#2458)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-17 12:56:21 +08:00
zryfish
a1767d4245 use non root user for building image (#2449)
Signed-off-by: Jeff <zw0948@gmail.com>
2020-07-16 18:52:51 +08:00
hongming
bd22856dbc fix: migration some resource API to v1alpha3
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-16 18:36:32 +08:00
KubeSphere CI Bot
fcea347780 Merge pull request #2368 from shaowenchen/add_dowload
using /v1alpha2/jenkins replace /jenkins.kubesphere.io api
2020-07-16 17:11:48 +08:00
KubeSphere CI Bot
f04135a86e Merge pull request #2419 from wanjunlei/auditing-es
lazy initializing es client of auditing
2020-07-16 17:10:48 +08:00
KubeSphere CI Bot
9e1dc89ced Merge pull request #2439 from wansir/node
fix: node status filter
2020-07-16 17:08:48 +08:00
KubeSphere CI Bot
34aec8df65 Merge pull request #2416 from min-zh/storage-capability
fix "Failed to list *v1beta1.VolumeSnapshotClass" on k8s 1.16
2020-07-16 16:51:48 +08:00
junotx
53eabed3ca lazy init events client and optimize events search 2020-07-16 15:15:30 +08:00
hongming
4f3007c143 fix: node status filter
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-16 12:10:59 +08:00
zhangmin
1549dd396f fix "Failed to list *v1beta1.VolumeSnapshotClass" on k8s 1.16 2020-07-16 11:36:47 +08:00
shaowenchen
895d8b838f add interface for iam
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-15 17:51:08 +08:00
KubeSphere CI Bot
de5f4c36e0 Merge pull request #2423 from huanggze/multi-indices
significantly improve log search performance
2020-07-15 17:09:47 +08:00
shaowenchen
6090874cc4 using /jenkins replace jenkins.kubesphere.io api
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-15 17:06:54 +08:00
KubeSphere CI Bot
42b543ec5e Merge pull request #2415 from wansir/kubeconfig
fix: empty server host
2020-07-15 10:29:48 +08:00
huanggze
6a5738d66a significantly improve log search performance
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-07-14 19:42:48 +08:00
wanjunlei
1c436f8b48 lazy initializing es client of auditing 2020-07-14 15:39:30 +08:00
hongming
311c5289aa fix: empty server host
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-14 14:00:38 +08:00
KubeSphere CI Bot
0f63b5ba5f Merge pull request #2287 from huanggze/es
lazy initializing es client
2020-07-14 12:08:47 +08:00
KubeSphere CI Bot
fea34315d0 Merge pull request #2404 from huanggze/sort
fix: cannot sort in ascending order
2020-07-14 12:03:48 +08:00
KubeSphere CI Bot
5fb22a23ff Merge pull request #2408 from duanjiong/networkpolicy-fix
modify the field networkIsolate in workspace
2020-07-14 12:02:47 +08:00
Duan Jiong
7e8bef6bfd modify the field networkIsolate in workspace
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-07-13 19:13:26 +08:00
huanggze
4df7ae2636 lazy initializing es client
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-07-13 17:06:15 +08:00
huanggze
b4f899b337 fix: cannot sorting in ascending order
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-07-13 12:01:56 +08:00
KubeSphere CI Bot
78159e9636 Merge pull request #2333 from wansir/workspacerole-ownerref
fix: resource lifecycle
2020-07-10 14:26:47 +08:00
hongming
ed8bb437e8 fix: resource lifecycle
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-10 13:23:18 +08:00
zryfish
eeaa4b646a use more friendly error messages (#2364) 2020-07-09 18:33:24 +08:00
KubeSphere CI Bot
b479195aea Merge pull request #2373 from wansir/2358
fix: forbidden update user
2020-07-09 18:28:47 +08:00
KubeSphere CI Bot
013b89df4f Merge pull request #2370 from shaowenchen/fix_kubeconfig
fix sync kubeconfig bug
2020-07-09 18:27:47 +08:00
hongming
3c6ca85e30 fix: forbidden update user
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-09 18:25:30 +08:00
zryfish
97b619452b change error message when there is no proxy address (#2372) 2020-07-09 18:06:37 +08:00
shaowenchen
fbaeddb897 fix sync kubeconfig bug
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-07-09 17:50:13 +08:00
KubeSphere CI Bot
f187f97c76 Merge pull request #2353 from zheng1/refactor_op
Add /workspaces/{workspace}/apps/{app}
2020-07-09 16:00:46 +08:00
Zhengyi Lai
fdb22d0191 Bugfix: create app within user
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-07-09 10:34:11 +08:00
zryfish
7516019be5 fix typo (#2355) 2020-07-09 00:31:24 +08:00
zryfish
693a4143db reconcile host cluster (#2354)
print friendly error when component failed

update dockerfile
2020-07-08 23:55:13 +08:00
Zhengyi Lai
f53fc243f5 Add /workspaces/{workspace}/apps/{app} 2020-07-08 23:24:35 +08:00
hongming
99aff3c7da fix: resource scope (#2280)
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-07 15:24:10 +08:00
KubeSphere CI Bot
d50e59bc9e Merge pull request #2324 from wanjunlei/auditing
make the ResponseCapture implements CloseNotify interface
2020-07-07 14:38:46 +08:00
KubeSphere CI Bot
a8432d1881 Merge pull request #2322 from wansir/fix-636
fix: DaemonSet status search returns wrong result
2020-07-07 14:37:46 +08:00
KubeSphere CI Bot
cdd78e8bcd Merge pull request #2264 from wansir/iam
fix: password modify
2020-07-07 14:17:45 +08:00
hongming
ddd6e1aac8 fix: Daemonset status search returns wrong result
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-06 22:08:57 +08:00
wanjunlei
cb5f98cf97 make the ResponseCapture implements CloseNotify interface 2020-07-06 22:06:32 +08:00
KubeSphere CI Bot
ff329e1548 Merge pull request #2318 from wansir/op
revert openpitrix API
2020-07-06 21:24:45 +08:00
hongming
9e71c58472 revert openpitrix API
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-06 21:16:14 +08:00
calvinyv
c3700b78d9 Merge pull request #2265 from min-zh/storage-capability
capability for non CSI storage
2020-07-06 19:36:22 +08:00
zhangmin
052b1b5f25 capability for non CSI storage 2020-07-06 16:01:57 +08:00
hongming
77a3722b4e fix: password modify
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-06 15:12:11 +08:00
KubeSphere CI Bot
c870209edd Merge pull request #2293 from zheng1/refactor_op
Refactor OpenPitrix API path
2020-07-06 11:04:45 +08:00
KubeSphere CI Bot
5223362cc8 Merge pull request #2290 from wansir/requestinfo
fix: implicit workspace info in query
2020-07-06 11:02:45 +08:00
hongming
b52db8732b fix: implicit workspace info in query
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-03 21:14:52 +08:00
Zhengyi Lai
ebca5a0091 Refactor OpenPitrix API path
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-07-03 19:14:25 +08:00
zryfish
3c99b3ca9e fix issue #2289 Can't create fed project (#2291) 2020-07-03 18:06:02 +08:00
KubeSphere CI Bot
86a027e496 Merge pull request #2288 from wansir/clusters
fix: federated workspace cluster selector
2020-07-02 21:56:45 +08:00
hongming
8515e01f55 fix: federated workspace cluster selector
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-02 21:38:04 +08:00
KubeSphere CI Bot
031d6b3b6a Merge pull request #2270 from wansir/ldap
fix: synchronize users to LDAP
2020-07-02 17:54:44 +08:00
hongming
48f80d8c1a fix: Synchronize users to LDAP
Signed-off-by: hongming <talonwan@yunify.com>
2020-07-02 15:43:21 +08:00
KubeSphere CI Bot
38a4bc7a26 Merge pull request #2258 from duanjiong/networkpolicy-fix
fix nsnp webhook to validate all fileds in it
2020-07-01 14:40:44 +08:00
KubeSphere CI Bot
550e9c1f8f Merge pull request #2273 from Sherlock113/link630
Centos version and link change in readme
2020-06-30 12:47:43 +08:00
sherlock
975eecac9d centos version and link change in readme
Signed-off-by: sherlock <sherlockxu@yunify.com>
2020-06-30 12:19:05 +08:00
KubeSphere CI Bot
2e09566f04 Merge pull request #2260 from wanjunlei/auditing
fix bug auditing search error when es index does not exist
2020-06-30 11:25:43 +08:00
wanjunlei
c4dcd086d0 fix bug auditing search error when es index is not exist 2020-06-28 16:44:44 +08:00
Duan Jiong
655fd26cbf fix nsnp webhook to validate all fileds in it
such as ipblock, service.
And the crd openAPIV3Schema could not validate all scenarios

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-06-28 09:44:05 +08:00
KubeSphere CI Bot
52abbeb355 Merge pull request #2227 from wanjunlei/master
process audit information for resource creating requests
2020-06-27 20:51:43 +08:00
KubeSphere CI Bot
2a05365871 Merge pull request #2257 from wanjunlei/auditing-authority
add resourcescope to AttributesRecord when determine whether the user…
2020-06-27 20:45:42 +08:00
KubeSphere CI Bot
eb1001d2b8 Merge pull request #2256 from huanggze/role
logging: update rolebinding check
2020-06-27 20:43:43 +08:00
KubeSphere CI Bot
d5e58c1338 Merge pull request #2254 from junotx/master
fix: listIntersectedNamespaces for observability
2020-06-27 20:41:43 +08:00
KubeSphere CI Bot
9615f1f46b Merge pull request #2253 from wanjunlei/auditing
fix wrong total audit event number
2020-06-27 20:38:43 +08:00
KubeSphere CI Bot
dda1bfeecf Merge pull request #2252 from wansir/federatedworkspaces
fix: federatedworkspace clusterSelector zero value
2020-06-27 20:37:44 +08:00
wanjunlei
0e6277ed66 add resourcescope to AttributesRecord when determine whether the user can list namespace 2020-06-27 19:21:00 +08:00
wanjunlei
7338b81254 Delete modification of permission and submit as a pr separately 2020-06-27 11:13:26 +08:00
huanggze
b92e768beb logging: update rolebinding check
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-06-27 10:37:59 +08:00
wanjunlei
9a02d77093 add resourcescope to AttributesRecord when determine whether the user can list namespace 2020-06-24 22:55:33 +08:00
junotx
f0ae82793e fix: listIntersectedNamespaces for observability 2020-06-24 19:16:22 +08:00
wanjunlei
dba32a1c5b fix bug total result of auditing time topology error 2020-06-24 16:26:51 +08:00
hongming
a0a53a69af fix: federatedworkspace clusterSelector zero value
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-24 16:03:08 +08:00
KubeSphere CI Bot
d91047588f Merge pull request #2245 from huanggze/master
update metrics
2020-06-24 10:48:42 +08:00
wanjunlei
37346150d3 resolve conversation 2020-06-23 16:26:24 +08:00
huanggze
28887b65f1 update metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-06-23 12:20:28 +08:00
zryfish
ad1471a4a7 only run virtualservice and destinationrule controller when servicemesh is enabled (#2243) 2020-06-23 11:48:50 +08:00
KubeSphere CI Bot
a5d77abdab Merge pull request #2244 from zheng1/op_bugfix
Add API for Describe the specified application of the namespace
2020-06-22 21:47:42 +08:00
Zhengyi Lai
6fecd62f13 Add API for Describe the specified application of the namespace
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-06-22 20:11:38 +08:00
zryfish
48081f91af fix kubeapiserver proxy rejects all dryRun requests (#2241) 2020-06-22 16:37:52 +08:00
zryfish
5caee71b25 fix kubeapiserver proxy rejects all dryRun requests (#2240) 2020-06-22 14:24:59 +08:00
KubeSphere CI Bot
60444ba945 Merge pull request #2233 from pengcong06/op_listapp
feat: add api list application
2020-06-19 18:46:41 +08:00
pengcong06
8970fffedf feat: add api list application 2020-06-19 18:39:49 +08:00
KubeSphere CI Bot
a5a6d48fdc Merge pull request #2232 from huanggze/patch-2
update comment
2020-06-19 17:41:41 +08:00
KubeSphere CI Bot
42422710e0 Merge pull request #2231 from junotx/master
fix: total in histogram response of events search
2020-06-19 17:40:41 +08:00
KubeSphere CI Bot
e1fd9492a9 Merge pull request #2230 from wansir/master
fix: multi-cluster proxy authentication
2020-06-19 17:38:41 +08:00
Guangzhe Huang
1fcb5116df update comment 2020-06-19 16:55:39 +08:00
junotx
217dd4f713 fix: total in histogram response of events search 2020-06-19 16:20:17 +08:00
hongming
ee741858b6 fix: multi-cluster proxy authentication
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-19 15:20:43 +08:00
KubeSphere CI Bot
0493a352dc Merge pull request #2225 from wansir/controller-bug
fix: workspace label missing after update
2020-06-19 10:23:40 +08:00
wanjunlei
7393ef91fa processing audit information of non-standard request
Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-06-18 22:56:25 +08:00
hongming
618a4bb424 fix: workspace label missing after update
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-18 15:23:28 +08:00
KubeSphere CI Bot
197591baea Merge pull request #2219 from wansir/workspacerole-patch
add role patch API
2020-06-18 11:45:40 +08:00
hongming
56cf6d1028 add role patch API
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-18 11:31:55 +08:00
zryfish
b661e0d1b6 fix cluster import validation bug (#2223) 2020-06-18 10:54:20 +08:00
KubeSphere CI Bot
0ac6d069dc Merge pull request #2221 from wansir/master
fix: controller panic
2020-06-17 19:34:40 +08:00
hongming
1f23f2ad8b fix: controller panic
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-17 18:57:10 +08:00
KubeSphere CI Bot
2f6f37b158 Merge pull request #2217 from wansir/master
fix: workspace cluster authorize
2020-06-17 16:57:40 +08:00
KubeSphere CI Bot
cc3554d049 Merge pull request #2218 from wansir/label-filter
fix: label filter logic
2020-06-17 16:51:40 +08:00
KubeSphere CI Bot
85d08dede8 Merge pull request #2216 from wanjunlei/auditing
fix the bug "Cannot read property 'get' of undefined"
2020-06-17 16:39:40 +08:00
hongming
01944c05ee fix: label filter logic
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-17 16:11:22 +08:00
hongming
8aa934bfb7 fix: workspace cluster authorize
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-17 13:10:11 +08:00
wanjunlei
0933e2f185 add test 2020-06-17 09:48:56 +08:00
wanjunlei
bdb123b95a fix the bug "Cannot read property 'get' of undefined" 2020-06-17 00:04:28 +08:00
KubeSphere CI Bot
692271bb56 Merge pull request #2212 from wansir/workspace-manager
fix: auto create workspace manager rolebinding
2020-06-16 18:15:40 +08:00
KubeSphere CI Bot
85581a4f57 Merge pull request #2206 from wansir/label-filter
fix: label filter
2020-06-16 18:12:40 +08:00
hongming
203fde784a fix: auto create workspace manager rolebinding
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-16 16:30:40 +08:00
hongming
c7a9f103ee fix: label filter
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-16 13:02:34 +08:00
zryfish
5d9542025a create openpitrix runtime when new cluster added (#2204) 2020-06-15 23:17:16 +08:00
KubeSphere CI Bot
bef5eb46b1 Merge pull request #2164 from wansir/controller
improve multicluster resource controller
2020-06-15 22:43:40 +08:00
hongming
4fcaa78b45 improve multicluster resource controller
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-15 21:40:24 +08:00
KubeSphere CI Bot
8c5e022450 Merge pull request #2203 from zheng1/refactor_op
Bugfix: UpsertRuntime create wrong runtime_id
2020-06-15 21:39:40 +08:00
Zhengyi Lai
887186b7b5 Bugfix: UpsertRuntime create wrong runtime_id
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-06-15 21:10:35 +08:00
KubeSphere CI Bot
977e30700e Merge pull request #2187 from wanjunlei/master
add audit components
2020-06-15 11:40:40 +08:00
KubeSphere CI Bot
0ff0ab3f10 Merge pull request #2190 from duanjiong/networkpolicy-fix
only accept validated CIDR in namespace networkpolicy
2020-06-15 11:37:40 +08:00
KubeSphere CI Bot
61d827db54 Merge pull request #2195 from zheng1/refactor_op
Refactor with OpenPitrix
2020-06-15 11:06:40 +08:00
wanjunlei
a3561550bb modify annotation of Event 2020-06-14 11:25:28 +08:00
wanjunlei
b96537b27f delete auditing controller 2020-06-13 17:42:27 +08:00
wanjunlei
584bdda50e Add two elements Message and Devops into Event struct.
Pass the event object instead of RequestInfo by request context to request handler.
2020-06-13 17:13:55 +08:00
Zhengyi Lai
3778abf767 Cleanup namespace controller 2020-06-13 00:32:13 +08:00
KubeSphere CI Bot
ce55e44ee9 Merge pull request #2197 from zheng1/cluster_network
Add option to enable network policy or not
2020-06-12 15:53:40 +08:00
Zhengyi Lai
e1e2b6b5e4 Remove WeaveScopeHost from network
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-06-12 15:23:00 +08:00
Zhengyi Lai
1055df5fce Add option to enable network policy or not 2020-06-12 15:12:38 +08:00
KubeSphere CI Bot
df36ae5c0e Merge pull request #2191 from wansir/tenant-api
add tenant resource API
2020-06-12 13:20:39 +08:00
wanjunlei
dd03cab01c change log level of get crd webhook error 2020-06-12 13:20:18 +08:00
KubeSphere CI Bot
63d2463d20 Merge pull request #2193 from shaowenchen/fix_pipeline
fix apiresult
2020-06-12 12:34:39 +08:00
hongming
b1d996f4a7 add test case
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-12 12:29:46 +08:00
wanjunlei
356560ac74 resolve conversation
formater

Signed-off-by: wanjunlei <wanjunlei@yunify.com>

debug

debug

Signed-off-by: wanjunlei <wanjunlei@yunify.com>
2020-06-12 11:19:27 +08:00
Zhengyi Lai
cf162559e3 Refactor with OpenPitrix
Signed-off-by: Zhengyi Lai <zheng1@yunify.com> (+2 squashed commits)
2020-06-12 00:29:39 +08:00
shaowenchen
8a11cbc875 fix apiresult
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-06-11 18:29:22 +08:00
zryfish
79e3597173 fix cluster status (#2192) 2020-06-11 16:10:19 +08:00
hongming
bafeecfee6 add tenant resource API
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-11 01:47:25 +08:00
pengcong06
55354bf20d add list events 2020-06-10 21:28:07 +08:00
pengcong06
59839439d5 feat:multi cluster application 2020-06-10 21:28:07 +08:00
wanjunlei
4cb84de44d add audit components
Signed-off-by: wanjunlei <wanjunlei@yunify.com>

debug

add test

add test

add test
2020-06-10 20:21:07 +08:00
Duan Jiong
825e026930 validate cidr
only accept validated cidr.
And fix the error handle when network-isotate is diabled.
And remove the useless crd.

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-06-10 18:11:05 +08:00
zryfish
d4b7d88b4b fix cluster status unchanged when cluster agent is already unavailable (#2188) 2020-06-10 17:27:41 +08:00
KubeSphere CI Bot
259971c0ed Merge pull request #2180 from shaowenchen/fix_pipeline
add field for pipeline branch
2020-06-10 17:04:39 +08:00
shaowenchen
3b2714982a add field for pipeline branch
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-06-09 15:24:55 +08:00
KubeSphere CI Bot
0316223f0d Merge pull request #2168 from wansir/csr-controller
fix csr controller bug
2020-06-09 14:46:38 +08:00
KubeSphere CI Bot
cc736e475f Merge pull request #2115 from shaowenchen/fix_query_credential
Fix query credential
2020-06-09 13:02:38 +08:00
shaowenchen
266e85dbee fix filter credential
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-06-09 12:00:47 +08:00
KubeSphere CI Bot
5993bdd654 Merge pull request #2161 from shaowenchen/fix_jenkin_basic
fix jenkins basic auth
2020-06-09 11:21:39 +08:00
KubeSphere CI Bot
dfed2a5afe Merge pull request #2179 from duanjiong/rename-controller
rename nsnp controller
2020-06-09 10:12:38 +08:00
Duan Jiong
3c21a21bd7 rename nsnp controller
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-06-08 22:36:49 +08:00
shaowenchen
e723038abc fix jenkins basic
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-06-08 18:34:42 +08:00
zryfish
e7c5c5a1f3 fix namespace controller crash when openpitrix is not enabled (#2167) 2020-06-07 23:15:43 +08:00
hongming
80953f5945 fix csr controller bug
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-07 22:45:19 +08:00
zryfish
4f98fac39d fix namespace controller crash when openpitrix is not enabled (#2166) 2020-06-07 21:46:25 +08:00
zryfish
9b16c0589c fix openpitrix return non nil client when enpoint is empty (#2165) 2020-06-07 20:00:27 +08:00
KubeSphere CI Bot
df348b199f Merge pull request #2155 from wanjunlei/master
add response_code_filter parameter in auditing events search api
2020-06-05 14:56:38 +08:00
KubeSphere CI Bot
38274c61f9 Merge pull request #2157 from min-zh/snapshot-crds
add snapshot crds
2020-06-05 14:55:37 +08:00
zryfish
bb4d3fee7a add component status to cluster status (#2160) 2020-06-05 14:51:05 +08:00
KubeSphere CI Bot
98b34a7760 Merge pull request #2159 from zheng1/fix_owners
Update network&openpitrix OWNERS
2020-06-04 20:08:37 +08:00
Zhengyi Lai
72939ab397 Update network&openpitrix OWNERS
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-06-04 20:07:47 +08:00
zhangmin
8bda24e53a add snapshot crds 2020-06-04 17:01:54 +08:00
KubeSphere CI Bot
eb99025fe7 Merge pull request #2149 from min-zh/snapshot
storage capability
2020-06-04 12:47:37 +08:00
KubeSphere CI Bot
d42d20c23c Merge pull request #2154 from wansir/role-templates
fix: clusterrolebinding controller bug
2020-06-04 12:41:37 +08:00
hongming
4e418bbe03 fix: clusterrolebinding controller bug
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-04 12:18:00 +08:00
wanjunlei
3d3b9d5af5 add response_code_filter parameter in auditing events search api 2020-06-04 12:06:56 +08:00
zhangmin
c6158a7cd3 storage capability 2020-06-04 10:36:13 +08:00
KubeSphere CI Bot
1882b20e6e Merge pull request #2132 from wansir/role-templates
update user's role templates API
2020-06-04 00:03:36 +08:00
hongming
ce3cd21a76 update user's role templates API
Signed-off-by: hongming <talonwan@yunify.com>
2020-06-03 23:49:49 +08:00
KubeSphere CI Bot
78eae543dd Merge pull request #2152 from zheng1/fix_owners
Update network OWNERS files
2020-06-03 16:16:37 +08:00
Zhengyi Lai
c9400359b1 Update network OWNERS files
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-06-03 16:11:40 +08:00
KubeSphere CI Bot
43a02c8c6e Merge pull request #2151 from duanjiong/networkpolicy-fix
fix namespace networkpolicy
2020-06-03 16:06:36 +08:00
Duan Jiong
e922a85dec fix namespace networkpolicy
add prefix when set key, otherwise the k8s rule will not be deleted
don't append ingress when ingress is empty, otherwise all ingress traffic will be allowed.

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-06-03 12:08:30 +08:00
KubeSphere CI Bot
3f86b8b35d Merge pull request #2138 from wansir/options
fix: crash if config file not provide
2020-06-03 11:26:36 +08:00
zryfish
ee5afd7d44 Merge branch 'master' into options 2020-06-03 11:14:42 +08:00
KubeSphere CI Bot
2f650dbac5 Merge pull request #2148 from shaowenchen/devops_log
set devops log level to 8
2020-06-02 16:31:37 +08:00
shaowenchen
2e04009547 set devops log level to 8
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-06-02 16:23:01 +08:00
zryfish
845887a325 fix proxy bug (#2146) 2020-06-02 14:26:31 +08:00
zryfish
68029de64c fix authorization header stripped by kube-apiserver (#2145) 2020-06-02 11:59:46 +08:00
KubeSphere CI Bot
a86f2a10c8 Merge pull request #2137 from huanggze/logging-fix
logging: start_time and end_time are not required params
2020-06-01 20:20:36 +08:00
zryfish
59900f6e1c use kube-apiserver proxy if no kubesphere api endpoint provided (#2144) 2020-06-01 19:54:05 +08:00
zryfish
345ce1ac0f fix audit options default empty (#2143) 2020-06-01 13:57:38 +08:00
KubeSphere CI Bot
b681193c1f Merge pull request #2129 from wanjunlei/master
add auditing events search api
2020-06-01 11:45:37 +08:00
KubeSphere CI Bot
82b93f8962 Merge pull request #2134 from huanggze/monitor-fix
config: remove prometheus secondary-endpoint flag
2020-05-30 23:54:36 +08:00
zryfish
b9c2ebc97c fix jaeger api endpoint bug (#2140) 2020-05-30 23:54:21 +08:00
KubeSphere CI Bot
5509f6483b Merge pull request #2135 from klj890/fix/ingressController
add configmap default suffix
2020-05-30 23:53:36 +08:00
hongming
9699f6c566 fix: crash if configfile not provide
Signed-off-by: hongming <talonwan@yunify.com>
2020-05-30 10:27:43 +08:00
huanggze
71b2b78c38 logging: start_time and end_time are not required params
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-29 18:59:36 +08:00
Tony Wang
decb160a4e Update routers.go
add configMap Suffix.
2020-05-29 17:56:00 +08:00
huanggze
22cbbb30b1 config: remove prometheus secondary-endpoint flag
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-29 17:12:43 +08:00
KubeSphere CI Bot
a575c3eda8 Merge pull request #2117 from shaowenchen/fix_devops_api
modify devops api for tenant
2020-05-29 15:34:35 +08:00
root
951c31189a add auditing events search api 2020-05-28 09:55:14 +08:00
KubeSphere CI Bot
ea2e87697d Merge pull request #2126 from junotx/master
fix events search
2020-05-27 18:11:36 +08:00
zryfish
27ca024bb7 add version api (#2127)
add cluster validation api
2020-05-27 18:11:27 +08:00
junotx
5818733481 fix events search 2020-05-27 14:24:34 +08:00
KubeSphere CI Bot
e119fd8a36 Merge pull request #2114 from huanggze/op
monitor: fix platform-level statistics
2020-05-27 14:17:35 +08:00
huanggze
0e83717914 monitor: fix platform-level statistics
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-27 13:58:07 +08:00
KubeSphere CI Bot
e71cd79c2b Merge pull request #2112 from shaowenchen/fix_s2i_api
fix SecretRef nil
2020-05-27 11:19:35 +08:00
zryfish
ccb7a89061 fix 415 unsupported media type (#2122) 2020-05-26 15:29:06 +08:00
KubeSphere CI Bot
5c44d17d9e Merge pull request #2118 from rayzhou2017/master
Add license info in code file as a sample for devops compoment
2020-05-26 15:28:34 +08:00
zryfish
cb65048926 remove consumes and produces on root webservice (#2120) 2020-05-26 14:33:16 +08:00
KubeSphere CI Bot
453c08f410 Merge pull request #2119 from shaowenchen/add_license_for_devops
add license for devops
2020-05-26 11:02:35 +08:00
shaowenchen
0a087c634b Merge branch 'master' into add_license_for_devops 2020-05-26 11:01:08 +08:00
shaowenchen
d83ac69d80 add license for devops
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-05-26 10:31:14 +08:00
Ray Zhou
66609a8511 Add license info in code file as a sample for devops compoment 2020-05-26 09:49:42 +08:00
shaowenchen
6d3647405c fix devops api for tenant 2020-05-26 09:46:43 +08:00
KubeSphere CI Bot
b8f6a97340 Merge pull request #2100 from huanggze/logging
logging: integrate new IAM
2020-05-25 21:43:34 +08:00
KubeSphere CI Bot
c104516ce0 Merge pull request #2111 from wansir/update-copyright
copyright license update
2020-05-25 17:17:34 +08:00
huanggze
9b6f38d857 logging: integrate new IAM
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-25 16:58:20 +08:00
shaowenchen
3b8dc4bac4 fix SecretRef nil
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-05-25 15:39:20 +08:00
KubeSphere CI Bot
19d546a973 Merge pull request #2106 from wansir/master
fix user's resource lifecycle
2020-05-25 15:15:34 +08:00
KubeSphere CI Bot
dc4ec5e51e Merge pull request #2108 from shaowenchen/fix_project_info
fix project info
2020-05-25 15:07:35 +08:00
hongming
85b61dce7c copyright license update
Signed-off-by: hongming <talonwan@yunify.com>
2020-05-25 14:51:24 +08:00
shaowenchen
3facb060ac fix project info
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-05-25 14:25:22 +08:00
zryfish
48db63b91f fix registry public hub search (#2110) 2020-05-25 14:21:18 +08:00
KubeSphere CI Bot
bb94d6da24 Merge pull request #2107 from shaowenchen/complete_dockerfileignore
add .git to .dockerfileignore
2020-05-25 10:52:35 +08:00
KubeSphere CI Bot
8362f59adc Merge pull request #2104 from huanggze/monitoring
monitor: add platform metrics
2020-05-25 10:49:34 +08:00
shaowenchen
42f1f38a51 add .git to .dockerfileignore
Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-05-24 16:19:25 +08:00
hongming
57acaeba41 use ownerReference control the lifecycle of user's kubeconfig and kubectl pod
Signed-off-by: hongming <talonwan@yunify.com>
2020-05-23 21:26:28 +08:00
KubeSphere CI Bot
4074e73a1b Merge pull request #2072 from shaowenchen/fix_create_pipeline
fix pipeline bugs
2020-05-23 21:15:34 +08:00
KubeSphere CI Bot
5a89ce7394 Merge pull request #2056 from wansir/master
improve IAM module
2020-05-23 21:02:35 +08:00
hongming
8f93266ec0 improve IAM module
Signed-off-by: hongming <talonwan@yunify.com>
2020-05-23 20:48:19 +08:00
huanggze
5c695a1c90 monitor: add platform metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-23 15:09:20 +08:00
shaowenchen
11b72a8817 fix create pipeline error
fix get pipelinerun list

feature kapi for devopsproject pipeline credential

fix get pipelinebranch

fix create credential api

Signed-off-by: shaowenchen <mail@chenshaowen.com>
2020-05-22 14:56:34 +08:00
KubeSphere CI Bot
b8e6a670d7 Merge pull request #2099 from duanjiong/networkpolicy-fix
fix namespace networkpolicy
2020-05-22 14:54:34 +08:00
KubeSphere CI Bot
62566b9712 Merge pull request #2096 from rayzhou2017/master
Fix grammer errors in code comments
2020-05-22 13:55:33 +08:00
Duan Jiong
7a0b18315f fix namespace networkpolicy
add filter on namespace event func
delete the code which do same work with namespace controller

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-05-21 11:02:34 +08:00
zryfish
0d12529051 bump kiali version (#2097) 2020-05-20 23:55:44 +08:00
Ray Zhou
66a312a1e0 Fix grammer errors in code comments 2020-05-20 20:31:19 +08:00
KubeSphere CI Bot
6f97e3df14 Merge pull request #2093 from pengcong06/opbug
params key error: app -> app_id
2020-05-20 19:10:33 +08:00
pengcong06
b568f824d0 params key error: app -> app_id 2020-05-20 00:32:29 +08:00
KubeSphere CI Bot
e49b2de7b9 Merge pull request #2086 from huanggze/monitor-fix
monitoring: fix metric value NaN
2020-05-19 19:24:33 +08:00
KubeSphere CI Bot
28a9e072f4 Merge pull request #2080 from duanjiong/networkpolicy-fix
fix namespace networkpolicy
2020-05-19 19:22:33 +08:00
KubeSphere CI Bot
2f2770eced Merge pull request #2089 from donhui/patch-1
typo fix
2020-05-19 15:50:32 +08:00
Donghui Wang
028e882420 typo fix 2020-05-19 15:19:44 +08:00
huanggze
14069b95f2 monitoring: fix metric value NaN
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-18 22:30:36 +08:00
KubeSphere CI Bot
af341f6fbe Merge pull request #2085 from chinazj/krole
add unit test for job controller
2020-05-18 21:14:32 +08:00
jian.zhang
df49775acb add unit test for job
Signed-off-by: jian.zhang <jian.zhang@jhlinux.com>
2020-05-18 20:21:57 +08:00
zryfish
17200172a8 remove specific version of generic proxy server (#2084) 2020-05-18 18:31:57 +08:00
KubeSphere CI Bot
4e3d37a994 Merge pull request #2079 from huanggze/master
monitoring: update node_pod_quota
2020-05-18 14:01:32 +08:00
Duan Jiong
4e45d659c0 fix namespace networkpolicy
1. allow egress when isolate is enabled
2. add nsnp prefix "nsnp-"
3. remove some useless log

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-05-18 09:10:33 +08:00
huanggze
4f39094e2f monitoring: update node_pod_quota
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-15 21:01:29 +08:00
KubeSphere CI Bot
f0749ac442 Merge pull request #2076 from huanggze/custom-monitoring
api: list metric labels and values
2020-05-15 19:52:32 +08:00
KubeSphere CI Bot
ec903222a7 Merge pull request #2069 from junotx/master
add events search apis
2020-05-15 19:51:31 +08:00
huanggze
8b913abd61 api: list metric labels and values
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-15 19:22:23 +08:00
zryfish
d2600705c6 Add requests to nodes (#2078)
* add requests and limits to nodes

* add requests and limits to nodes
2020-05-15 17:31:38 +08:00
junotx
8f5ca7673d add events search apis 2020-05-15 10:28:12 +08:00
Guangzhe Huang
044dd8eba3 monitoring: update builtin metrics (#2074)
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-05-15 10:20:01 +08:00
KubeSphere CI Bot
c3d74660d1 Merge pull request #2071 from shaowenchen/feature_add_pipeline_api
add pipeline api
2020-05-14 23:47:32 +08:00
KubeSphere CI Bot
4abaf96757 Merge pull request #2065 from shaowenchen/fix_create_devops
fix devops create and delete bug
2020-05-14 23:46:31 +08:00
shaowenchen
78080afbf5 fix test 2020-05-14 19:09:53 +08:00
KubeSphere CI Bot
d80cbff938 Merge pull request #2068 from pengcong06/dev
init opClient
2020-05-14 16:33:31 +08:00
pengcong06
070aa863fb init opClient 2020-05-14 14:14:30 +08:00
shaowenchen
b84f261942 add pipeline api 2020-05-14 14:13:07 +08:00
zryfish
1bd660c370 fix proxy bug (#2070) 2020-05-14 13:22:30 +08:00
shaowenchen
8f40bb2d3e fix delete devops failed 2020-05-14 10:01:46 +08:00
shaowenchen
9b656196e3 fix delete devops 2020-05-13 23:13:13 +08:00
shaowenchen
f52cb829c2 fix create devops 2020-05-13 23:01:26 +08:00
zryfish
d358d9ab1a add notification apis (#2066)
add alerting apis

add generic proxy
2020-05-13 21:50:26 +08:00
shaowenchen
4f9c77383e fix create devopsproject 2020-05-13 21:34:16 +08:00
shaowenchen
4fc56de7c0 fix create devopsproject 2020-05-13 21:32:31 +08:00
KubeSphere CI Bot
1464ca197d Merge pull request #2057 from min-zh/snapshot
fix bug of pvc api
2020-05-13 17:24:31 +08:00
zhangmin
250dd4b065 fix bugs of pvc api 2020-05-13 15:56:13 +08:00
zryfish
1d48ca3446 fix ws authorization bug (#2059) 2020-05-12 16:08:05 +08:00
zryfish
dcd341e70f fix websocket bug (#2058) 2020-05-12 15:31:13 +08:00
KubeSphere CI Bot
f34a4e1c2a Merge pull request #2051 from wansir/dev
fix list namespaces
2020-05-08 23:08:29 +08:00
zryfish
18ab887640 add cluster and crd to resources api group (#2053) 2020-05-08 17:30:15 +08:00
KubeSphere CI Bot
256b178927 Merge pull request #2050 from min-zh/snapshot
volume snapshot
2020-05-07 11:40:29 +08:00
zhangmin
4f17b7a07f volume snapshot 2020-05-07 10:47:44 +08:00
hongming
992be764a1 fix list namespaces
Signed-off-by: hongming <talonwan@yunify.com>
2020-05-07 09:14:54 +08:00
zryfish
87e567eaf5 fix cluster controller bug (#2049) 2020-05-06 16:23:38 +08:00
zryfish
dc6c9cc58e fix generation bug (#2048) 2020-05-06 13:53:18 +08:00
KubeSphere CI Bot
738a6102a0 Merge pull request #2045 from wansir/dev
fuzzy matching name by default
2020-05-06 11:17:28 +08:00
zryfish
7cdf67f9f2 fix generation bug (#2047) 2020-05-06 10:52:56 +08:00
KubeSphere CI Bot
3ff82c7299 Merge pull request #2041 from duanjiong/networkpolicy-resource
add k8s networkpolicy resource
2020-05-06 10:40:29 +08:00
hongming
af59940ed2 fuzzy matching name by default
Signed-off-by: hongming <talonwan@yunify.com>
2020-05-04 23:53:57 +08:00
Duan Jiong
7e0983ad47 add k8s networkpolicy resource
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-05-03 09:17:24 +08:00
zryfish
98f44fac99 fix generation bug (#2043) 2020-05-01 13:12:54 +08:00
zryfish
933207d247 add cluster proxy gerneration code (#2042) 2020-04-30 22:33:23 +08:00
zryfish
cdd116242a Merge pull request #2039 from zryfish/master
Merge dev branch
2020-04-29 20:46:18 +08:00
Jeff
c62254696c fix openapi schema bug 2020-04-29 20:19:48 +08:00
Jeff
edcec868dc fix merge conflicts 2020-04-29 19:48:40 +08:00
Jeff
4e8e840d1f Merge branch 'dev' 2020-04-29 19:20:59 +08:00
Jeff
19f1971215 rearrange workflow 2020-04-29 17:05:30 +08:00
Jeff
2bac1a24d9 rebase 2020-04-29 17:05:30 +08:00
zryfish
31436b451d fix multicluster options (#2037) 2020-04-29 14:36:40 +08:00
KubeSphere CI Bot
8af14d79ef Merge pull request #1890 from wnxn/set-default-sc
Add patch api header
2020-04-29 10:45:27 +08:00
KubeSphere CI Bot
566ed4d4b9 Merge pull request #2012 from duanjiong/network-policy
Network policy
2020-04-29 10:44:27 +08:00
KubeSphere CI Bot
25e95c4c3f Merge pull request #2018 from wansir/dev
migrate legacy API
2020-04-29 10:42:26 +08:00
hongming
8976ee242f remove useless go moudle
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-29 10:28:25 +08:00
KubeSphere CI Bot
e4cb3b784a Merge pull request #1806 from wansir/master
multi-tenancy 3.0 roadmap
2020-04-28 15:36:27 +08:00
KubeSphere CI Bot
96eeee56e5 Merge pull request #1792 from benjaminhuo/master
Add v3.0 observability roadmap
2020-04-28 15:35:27 +08:00
KubeSphere CI Bot
640baf6624 Merge pull request #1805 from wnxn/roadmap
Add storage roadmap for ks 3.0
2020-04-28 15:34:27 +08:00
KubeSphere CI Bot
ec93d14a49 Merge pull request #2035 from shaowenchen/patch-1
Update OWNERS
2020-04-28 15:03:27 +08:00
pengfei
ccc6b58aab Merge pull request #1795 from runzexia/patch-1
devops 3.0 roadmap
2020-04-28 12:03:10 +08:00
shaowenchen
588cc853df Update OWNERS 2020-04-28 12:00:20 +08:00
Duan Jiong
e8cee7be68 update vendor
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-04-28 10:54:41 +08:00
Duan Jiong
4fb9d84fea allow dns traffic and host node traffic
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-04-28 10:21:58 +08:00
Duan Jiong
1ab7d67e51 allow ip/port in service when config service nsnp
Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-04-28 10:21:58 +08:00
Duan Jiong
d3bdcd0465 network: support network isolate
Add new crd to convert kubesphere network policy to k8s network policy, and then other network
plugin will do the rest work.

Use  cache.go from calico project's kube-controller,  it aim to  sync nsnp with k8s np, delete unused np, and relieve the pressure on k8s restful client.

If you want higher performance, you can implement interface  NsNetworkPolicyProvider in pkg/controller/provider/namespace_np.go.

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-04-28 10:21:50 +08:00
Duan Jiong
fc373b18e3 update workspace spec
Add field networkIsolate in workspace spec, in order to support workspace network isolate

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-04-28 10:06:54 +08:00
Duan Jiong
26d014302e namespace: add namespace label
in order to select namespace when convert nsnp to k8snp

Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
2020-04-28 10:06:53 +08:00
hongming
b7a2705ac9 Merge remote-tracking branch 'upstream/dev' into dev
# Conflicts:
#	go.mod
#	pkg/apiserver/apiserver.go
#	pkg/apiserver/config/config.go
2020-04-28 00:52:30 +08:00
hongming
7db2ba662c migrate legacy API
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-28 00:45:12 +08:00
zryfish
5a3eb651f3 change cluster schema (#2026)
* change cluster schema

* change cluster schema
2020-04-27 17:34:02 +08:00
KubeSphere CI Bot
794f388306 Merge pull request #2022 from zheng1/sdn
Regenerate swagger.json
2020-04-27 13:53:26 +08:00
KubeSphere CI Bot
3fada47623 Merge pull request #2032 from wansir/update-makefile
update makefile
2020-04-26 15:15:26 +08:00
hongming
bfd3d21540 multi-tenancy 3.0 roadmap
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-26 14:42:23 +08:00
hongming
014f0c4df2 update makefile
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-26 14:33:58 +08:00
KubeSphere CI Bot
748cc161fc Merge pull request #2027 from huanggze/dev-fix
monitoring: some bug fix
2020-04-24 21:45:26 +08:00
huanggze
fc56333d3c monitoring: some bug fix
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-04-24 21:00:59 +08:00
KubeSphere CI Bot
f717172971 Merge pull request #2021 from wansir/makefile
update makefile
2020-04-24 16:21:25 +08:00
Zhengyi Lai
878d0fe517 Generate swagger.json 2020-04-22 19:24:43 +08:00
KubeSphere CI Bot
3f89eaef7e Merge pull request #2016 from huanggze/dev-fix
fix isRangeQuery
2020-04-21 13:37:23 +08:00
hongming
acac0b6888 update makefile
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-21 12:32:06 +08:00
KubeSphere CI Bot
3f1efb8e45 Merge pull request #2007 from huanggze/dev-custom
feat: custom monitoring
2020-04-20 20:04:22 +08:00
huanggze
dd78c1a036 feat: custom monitoring
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-04-20 17:33:06 +08:00
KubeSphere CI Bot
88d90b3964 Merge pull request #2017 from rayzhou2017/master
Update Makefile header license description
2020-04-19 10:18:22 +08:00
KubeSphere CI Bot
d2a8b27a76 Merge pull request #1985 from zheng1/sdn
Add network topology APIs
2020-04-19 09:40:21 +08:00
Ray Zhou
34d5340005 Update makefile header license description 2020-04-18 14:25:38 +08:00
Ray Zhou
1e21c0ff42 Revert "Update Makefile license description"
This reverts commit b736078e3c.
2020-04-18 14:22:38 +08:00
Ray Zhou
b736078e3c Update Makefile license description 2020-04-18 14:17:56 +08:00
Zhengyi Lai
8ad17a4648 Add network configuration to apiserver/config 2020-04-17 23:27:57 +08:00
huanggze
9709161540 fix isRangeQuery
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-04-17 16:48:07 +08:00
huanggze
6ef372a923 upgrade monitoring api version (#2015)
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-04-17 16:00:01 +08:00
Zhengyi Lai
828f7726fd Add network topology APIs
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2020-04-16 16:13:06 +08:00
zryfish
b51013333d Fix openapi schema (#2013)
* fix openapi spec

fix openapi schema bug

* fix api schema bug
2020-04-16 15:27:19 +08:00
KubeSphere CI Bot
ff7f99c589 Merge pull request #2011 from wansir/dev
migrate legacy API
2020-04-15 17:21:21 +08:00
hongming
5f951508c5 migrate legacy API
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-15 16:59:13 +08:00
KubeSphere CI Bot
d38e396e8c Merge pull request #1961 from runzexia/devops-refactor
add test for s2i controller & devops CRD
2020-04-15 13:48:21 +08:00
runzexia
df3ad79786 rm unused file 2020-04-15 11:44:13 +08:00
runzexia
052af22761 regenerate 2020-04-15 11:37:52 +08:00
runzexia
d8259160b8 Merge branch 'dev' into devops-refactor
# Conflicts:
#	Makefile
#	api/api-rules/violation_exceptions.list
#	api/openapi-spec/swagger.json
#	cmd/controller-manager/app/controllers.go
#	hack/generate_client.sh
#	pkg/apis/cluster/v1alpha1/openapi_generated.go
#	pkg/client/informers/externalversions/generic.go
#	pkg/kapis/tenant/v1alpha2/register.go
#	pkg/models/tenant/devops.go
#	pkg/models/tenant/workspaces.go
#	pkg/simple/client/devops/fake/fakedevops.go
#	tools/cmd/crd-doc-gen/main.go
2020-04-15 11:33:05 +08:00
runzexia
9a6ba04a37 clean old devops code
todo impl use informer

Signed-off-by: runzexia <runzexia@yunify.com>
2020-04-15 11:03:08 +08:00
hongming
bb9e12be3d fix iam admission webhook (#2008)
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-14 00:15:18 +08:00
KubeSphere CI Bot
864b244cc3 Merge pull request #2005 from wansir/token-cache-config
token cache config
2020-04-13 19:50:21 +08:00
hongming
3ce4a0d77c token cache config
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-13 19:14:41 +08:00
KubeSphere CI Bot
ff2523e515 Merge pull request #1984 from huanggze/dev-monitoring
monitor: add tests
2020-04-13 14:14:20 +08:00
zryfish
372a52e70e monitor: add tests
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-04-13 09:37:37 +08:00
KubeSphere CI Bot
17013d3519 Merge pull request #1989 from wansir/dev
add iam crd
2020-04-12 21:21:21 +08:00
hongming
8d18fc3657 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-12 18:56:33 +08:00
zryfish
c3c6ed8898 fix proxy bug (#2002) 2020-04-11 21:05:40 +08:00
hongming
5ac915ad2e Merge remote-tracking branch 'upstream/dev' into dev
# Conflicts:
#	pkg/apis/iam/v1alpha2/user_types.go
2020-04-10 15:49:31 +08:00
hongming
a3d3c8e427 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-10 15:41:23 +08:00
zryfish
6b4fd9b8fa Update build.yml 2020-04-10 15:21:10 +08:00
zryfish
dd5b96254c fix cluster bug (#1997) 2020-04-10 14:47:41 +08:00
zryfish
69c6d91fdb fix cluster controller (#1996) 2020-04-10 12:37:05 +08:00
hongming
0e814bb5e4 add iam crd
Signed-off-by: hongming <talonwan@yunify.com>
2020-04-10 04:05:23 +08:00
KubeSphere CI Bot
1604ed4b1a Merge pull request #1976 from rayzhou2017/master
Update README
2020-04-08 22:40:19 +08:00
zryfish
e174dcb3d6 add cluster controller (#1993) 2020-04-08 00:40:28 +08:00
zryfish
cfaeb10dc6 add cluster api group (#1992) 2020-04-07 19:33:45 +08:00
Ray Zhou
aa65b6b58e Add google group communication channel 2020-04-02 14:43:02 +08:00
Ray Zhou
0e81cc025e Update README 2020-04-02 13:55:39 +08:00
runzexia
56482f1feb fmt
Signed-off-by: runzexia <runzexia@yunify.com>
2020-04-02 10:29:47 +08:00
runzexia
7a6b27d77b Merge branch 'dev' into devops-refactor 2020-04-02 10:25:36 +08:00
runzexia
2aa343465e update
Signed-off-by: runzexia <runzexia@yunify.com>
2020-04-02 10:21:34 +08:00
zryfish
3c73471f79 fix path authorizer give no opinion on resource requests (#1981) 2020-04-01 17:41:50 +08:00
runzexia
449b5e042e trigger GitHub actions 2020-04-01 17:28:25 +08:00
runzexia
559c1fcf76 clean old devops code
todo impl use informer

Signed-off-by: runzexia <runzexia@yunify.com>
2020-04-01 15:54:57 +08:00
zryfish
c8dc3a4044 fix requestinfo bug (#1980) 2020-04-01 15:50:57 +08:00
zryfish
95f6d75c19 fix proxy host bug (#1977) 2020-04-01 15:23:29 +08:00
runzexia
c80a17f4b4 sonar handler init 2020-04-01 15:21:15 +08:00
runzexia
9ec99d1a63 clean import 2020-04-01 15:11:19 +08:00
runzexia
09576fdc15 updatee 2020-04-01 15:06:30 +08:00
runzexia
564d39caf0 clean codee 2020-04-01 12:04:05 +08:00
runzexia
30be09e012 refmt 2020-04-01 11:10:07 +08:00
runzexia
1a6f563da1 Merge branch 'dev' into devops-refactor
# Conflicts:
#	cmd/controller-manager/app/controllers.go
#	hack/generate_client.sh
#	pkg/client/clientset/versioned/clientset.go
#	pkg/client/clientset/versioned/fake/clientset_generated.go
#	pkg/client/clientset/versioned/fake/register.go
#	pkg/client/clientset/versioned/scheme/register.go
#	pkg/client/informers/externalversions/generic.go
2020-04-01 11:04:09 +08:00
KubeSphere CI Bot
1bf8beb1e6 Merge pull request #1971 from wansir/dev
implement identity provider and built-in oauth server
2020-03-31 07:32:17 +08:00
hongming
34dfc2048a add default oauth client
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-30 19:40:57 +08:00
KubeSphere CI Bot
038bc7907b Merge pull request #1975 from rayzhou2017/master
Update README.md
2020-03-30 16:37:16 +08:00
Ray Zhou
b1767e78fe Update README.md 2020-03-30 16:21:15 +08:00
hongming
4746c72806 Merge remote-tracking branch 'upstream/dev' into dev
# Conflicts:
#	hack/generate_client.sh
2020-03-30 15:48:10 +08:00
hongming
0d2279f5e4 fix somme error in controller-manager
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-30 15:40:03 +08:00
runzexia
d55fcdcfe4 remove check role
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-30 15:02:12 +08:00
runzexia
8892c63adb Merge branch 'dev' into devops-refactor 2020-03-30 10:26:13 +08:00
zryfish
7121e3609c move agent crd to kubesphere (#1974) 2020-03-29 16:49:11 +08:00
hongming
54fc52c0e3 add user crd
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-28 21:14:43 +08:00
hongming
96a1d3825e update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-28 14:09:39 +08:00
runzexia
443eb3f74c enable controller
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-27 15:20:53 +08:00
runzexia
f827116a1d add credential usage hander
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-27 15:03:17 +08:00
runzexia
98fed531ac refmt
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-27 11:25:56 +08:00
runzexia
2fce04efd3 fix ut test
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-27 11:19:37 +08:00
runzexia
f411bec10b add ut test 2020-03-27 10:52:39 +08:00
zryfish
96ddf4cfa0 add workflow to dev branch (#1972) 2020-03-27 10:35:10 +08:00
hongming
9b9d4021ec implement identity provider and built-in oauth server
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-26 15:19:20 +08:00
runzexia
af3b87ddca add devops credential controller
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-26 14:53:33 +08:00
runzexia
e8b9d9cdf3 add pipeline openapi docs
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-25 11:01:51 +08:00
runzexia
23c8d71a5a pipeline crd
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-25 10:58:39 +08:00
KubeSphere CI Bot
1e6e108597 Merge pull request #1967 from FeynmanZhou/readme
refine readme, remove the out-of-date docs
2020-03-25 10:20:59 +08:00
FeynmanZhou
75cd7e0677 refine README - CN
Signed-off-by: FeynmanZhou <pengfeizhou@yunify.com>
2020-03-24 17:10:53 +08:00
FeynmanZhou
8c1f621de5 refine readme, remove the out-of-date docs
Signed-off-by: FeynmanZhou <pengfeizhou@yunify.com>
2020-03-24 16:45:01 +08:00
zryfish
179fbdb67a move to github actions (#1965)
* move to github actions
2020-03-23 18:15:16 +08:00
runzexia
7a00f9e3e4 add multi version crd docs support &add crd docs gen
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-23 17:11:50 +08:00
runzexia
a48d7f5478 create devops job with admin ns name
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-23 16:13:49 +08:00
runzexia
e06a1a8335 create admin ns for devops project
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-23 15:56:37 +08:00
KubeSphere CI Bot
59002cd176 Merge pull request #1960 from wansir/dev
implement authorizer filter
2020-03-23 10:33:57 +08:00
runzexia
0ac15ea744 refmt code
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-23 10:01:22 +08:00
hongming
aa05c2baf4 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-22 23:17:43 +08:00
hongming
cae7843832 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-22 15:57:29 +08:00
hongming
b9bdcd824c update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-22 04:29:06 +08:00
hongming
aadb5e91e8 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-21 20:31:01 +08:00
hongming
1f26e62105 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-21 18:52:28 +08:00
runzexia
16d392065e fix go vet
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-20 10:37:37 +08:00
runzexia
ba4ab97cb6 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-20 10:28:05 +08:00
hongming
9769357005 update
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-20 02:16:11 +08:00
runzexia
91dd82891f devops project should be cluster
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 15:25:04 +08:00
runzexia
e86c27bc2c gen devops crd yaml
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 15:14:01 +08:00
runzexia
7ffee72b1f filter wach && list action
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 14:49:47 +08:00
runzexia
5dffb7305f add code comments
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 14:44:45 +08:00
runzexia
e4f2cdc3d2 fix go vet
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 14:28:35 +08:00
runzexia
3e998c3498 add devops project test
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 11:52:30 +08:00
hongming
23f6be88c6 implement authorizer filter
Signed-off-by: hongming <talonwan@yunify.com>
2020-03-19 11:17:21 +08:00
runzexia
71898e59dd add s2irun controller test
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 10:35:15 +08:00
runzexia
6a7bf0a86f add s2i controller test
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-19 09:53:16 +08:00
runzexia
93461cfb0b add devops project controller
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-18 14:48:41 +08:00
zryfish
0a07e5f652 refactor authentication (#1951)
* refactor authentication

* refactor authentication
2020-03-15 23:26:32 +08:00
zryfish
eb8a3c0dc6 refactor authentication (#1950) 2020-03-15 17:55:55 +08:00
zryfish
abf0d66b22 Add more tests (#1949)
* add more test code

* add more test code
2020-03-15 10:22:39 +08:00
zryfish
f8e7d06b07 move apigateway into apiserver (#1948) 2020-03-13 21:57:48 +08:00
runzexia
dab71e710b fix openapi gen tools (#1944)
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-10 15:46:46 +08:00
zryfish
641615b299 This is a huge commit, it does following things: (#1942)
1. Remove ks-iam standalone binary, move it to ks-apiserver
2. Generate all devops apis inside kubesphere repository, no need to
import s2ioperator.
3. Reorganize ldap code, make it more flexible to use.
2020-03-10 13:50:17 +08:00
KubeSphere CI Bot
fbd1904843 Merge pull request #1940 from Hugome/patch-1
Fix little year typo in the README
2020-03-07 17:06:39 +08:00
Hugome
bd4a529f7f Fix little year typo in the README
I was afraid the project was dead last year
2020-03-07 08:35:57 +01:00
runzexia
7270307b66 fix devops go vet (#1928)
Signed-off-by: runzexia <runzexia@yunify.com>
2020-03-07 12:46:09 +08:00
Guangzhe Huang
148a804726 refactor monitoring (#1751)
Signed-off-by: huanggze <loganhuang@yunify.com>
2020-03-07 12:34:52 +08:00
Guangzhe Huang
6c6bfb2677 [WIP] logging refactor (#1794)
* refactor logging

Signed-off-by: huanggze <loganhuang@yunify.com>

* refactor logging

Signed-off-by: huanggze <loganhuang@yunify.com>
2020-03-02 10:53:43 +08:00
KubeSphere CI Bot
112b962784 Merge pull request #1934 from FeynmanZhou/readme
refine readme, update download url to 2.1.1
2020-03-02 10:32:38 +08:00
FeynmanZhou
4e07963e42 refine readme, update download url to 2.1.1
Signed-off-by: FeynmanZhou <pengfeizhou@yunify.com>
2020-03-01 17:49:47 +08:00
hongming
a9e1183f3c code refactor (#1924)
* code refactor

Signed-off-by: hongming <talonwan@yunify.com>

* code refactor

Signed-off-by: hongming <talonwan@yunify.com>
2020-02-26 10:08:13 +08:00
hongming
570ef8b60a code refactor (#1923)
Signed-off-by: hongming <talonwan@yunify.com>
2020-02-25 20:47:59 +08:00
hongming
0664eeb559 code refactor (#1922)
Signed-off-by: hongming <talonwan@yunify.com>
2020-02-25 18:16:51 +08:00
KubeSphere CI Bot
0bc5529ea1 Merge pull request #1681 from huanggze/logging-doc
add logging dev guides
2020-02-24 16:31:36 +08:00
KubeSphere CI Bot
a44ee0d0fe Merge pull request #1689 from soulseen/s2i-doc
update s2i docs
2020-02-24 16:30:36 +08:00
KubeSphere CI Bot
dee8c54e18 Merge pull request #1685 from huanggze/monitoring-doc
add monitoring dev guides
2020-02-24 16:29:35 +08:00
hongming
abf9fee845 code refactor (#1786)
* implement LDAP mock client

Signed-off-by: hongming <talonwan@yunify.com>

* update

Signed-off-by: hongming <talonwan@yunify.com>

* update

Signed-off-by: hongming <talonwan@yunify.com>

* resolve conflict

Signed-off-by: hongming <talonwan@yunify.com>
2020-02-24 15:39:36 +08:00
runzexia
96aee0e60b Devops refactor (#1894)
* add devops client interface

Signed-off-by: runzexia <runzexia@yunify.com>

* direct return jenkins

Signed-off-by: runzexia <runzexia@yunify.com>

* add some interface

Signed-off-by: runzexia <runzexia@yunify.com>

* update

Signed-off-by: runzexia <runzexia@yunify.com>

* update interface

Signed-off-by: runzexia <runzexia@yunify.com>

* update

Signed-off-by: runzexia <runzexia@yunify.com>

* credential op structs

Signed-off-by: runzexia <runzexia@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* credential handler

Signed-off-by: runzexia <runzexia@yunify.com>

* update devopsoperator func

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* get build sonar

Signed-off-by: runzexia <runzexia@yunify.com>

* sonar handler

* mv code to cilent

Signed-off-by: runzexia <runzexia@yunify.com>

* update

Signed-off-by: runzexia <runzexia@yunify.com>

* project member handler

Signed-off-by: runzexia <runzexia@yunify.com>

* update pipeline operator interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add tenant devops handler

Signed-off-by: runzexia <runzexia@yunify.com>

* update merge

Signed-off-by: runzexia <runzexia@yunify.com>

* clean

Signed-off-by: runzexia <runzexia@yunify.com>

* fmt

Signed-off-by: runzexia <runzexia@yunify.com>

* update ListPipelineRuns

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* complate pipelineOperator interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update HttpParameters

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add pipeline steps interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update pipeline GetNodesDetail

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add s2i api

Signed-off-by: runzexia <runzexia@yunify.com>

* add branch pipeline interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add scan branch interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add common interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add SCM interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add handler

Signed-off-by: runzexia <runzexia@yunify.com>

* add fake s3

Signed-off-by: runzexia <runzexia@yunify.com>

* add webhook&check interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* clean

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* clean

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* format

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add some func

Signed-off-by: runzexia <runzexia@yunify.com>

* clean code

Signed-off-by: runzexia <runzexia@yunify.com>

* implement interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* fix interface GetBranchArtifacts

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add s2ibinary upload test

Signed-off-by: runzexia <runzexia@yunify.com>

* tenant devops

Signed-off-by: runzexia <runzexia@yunify.com>

* update tenant

Signed-off-by: runzexia <runzexia@yunify.com>

* fake

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add some unit test

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add devops tenant handler

Signed-off-by: runzexia <runzexia@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update fake test

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update unit test and fake data

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update

* enable devops client

Signed-off-by: runzexia <runzexia@yunify.com>

* enable devops client

Signed-off-by: runzexia <runzexia@yunify.com>

Co-authored-by: Xiaoyang Zhu <sunzhu@yunify.com>
2020-02-24 15:39:04 +08:00
Xin Wang
0dd83136e6 Add patch api header
Signed-off-by: Xin Wang <wileywang@yunify.com>
2020-02-18 17:10:22 +08:00
rayzhou2017
3466ee9a31 Merge pull request #1853 from eliaskoromilas/patch-1
Update powered-by-kubesphere.md
2020-02-12 22:45:19 +08:00
Elias Koromilas
6f01a520e5 Update powered-by-kubesphere.md
Added InAccel to the list
2020-02-12 12:15:28 +02:00
KubeSphere CI Bot
8caeb9d482 Merge pull request #1804 from FeynmanZhou/readme
update issue template to emphasize English only
2020-02-04 15:29:30 +08:00
Xin Wang
6f1082586e Add storage roadmap for ks 3.0
Signed-off-by: Xin Wang <wileywang@yunify.com>
2020-02-04 15:16:55 +08:00
runzexia
c5a340a2b4 devops refactor (#1739)
* add devops client interface

Signed-off-by: runzexia <runzexia@yunify.com>

* direct return jenkins

Signed-off-by: runzexia <runzexia@yunify.com>

* add some interface

Signed-off-by: runzexia <runzexia@yunify.com>

* update

Signed-off-by: runzexia <runzexia@yunify.com>

* update interface

Signed-off-by: runzexia <runzexia@yunify.com>

* update

Signed-off-by: runzexia <runzexia@yunify.com>

* credential op structs

Signed-off-by: runzexia <runzexia@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* credential handler

Signed-off-by: runzexia <runzexia@yunify.com>

* update devopsoperator func

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* get build sonar

Signed-off-by: runzexia <runzexia@yunify.com>

* sonar handler

* mv code to cilent

Signed-off-by: runzexia <runzexia@yunify.com>

* update

Signed-off-by: runzexia <runzexia@yunify.com>

* project member handler

Signed-off-by: runzexia <runzexia@yunify.com>

* update pipeline operator interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add tenant devops handler

Signed-off-by: runzexia <runzexia@yunify.com>

* update merge

Signed-off-by: runzexia <runzexia@yunify.com>

* clean

Signed-off-by: runzexia <runzexia@yunify.com>

* fmt

Signed-off-by: runzexia <runzexia@yunify.com>

* update ListPipelineRuns

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* complate pipelineOperator interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update HttpParameters

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add pipeline steps interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update pipeline GetNodesDetail

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add s2i api

Signed-off-by: runzexia <runzexia@yunify.com>

* add branch pipeline interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add scan branch interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add common interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add SCM interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add handler

Signed-off-by: runzexia <runzexia@yunify.com>

* add fake s3

Signed-off-by: runzexia <runzexia@yunify.com>

* add webhook&check interface and update handler

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* clean

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* clean

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* format

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add some func

Signed-off-by: runzexia <runzexia@yunify.com>

* clean code

Signed-off-by: runzexia <runzexia@yunify.com>

* implement interface

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* fix interface GetBranchArtifacts

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add s2ibinary upload test

Signed-off-by: runzexia <runzexia@yunify.com>

* tenant devops

Signed-off-by: runzexia <runzexia@yunify.com>

* update tenant

Signed-off-by: runzexia <runzexia@yunify.com>

* fake

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add some unit test

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* add devops tenant handler

Signed-off-by: runzexia <runzexia@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* status

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update fake test

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update unit test and fake data

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>

* update

Co-authored-by: Xiaoyang Zhu <sunzhu@yunify.com>
2020-02-04 10:40:36 +08:00
Xin Wang
e2fdb9ceef Add storage roadmap for ks 3.0
Signed-off-by: Xin Wang <wileywang@yunify.com>
2020-02-03 18:15:59 +08:00
周鹏飞@yunify
af327088b5 update issue template to emphasize English only
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2020-02-03 14:19:52 +08:00
周鹏飞@yunify
5d583f47db Merge branch 'master' of https://github.com/kubesphere/kubesphere into readme 2020-02-03 12:59:29 +08:00
runzexia
3f6cbc3d8c devops 3.0 roadmap 2020-01-20 13:18:16 +08:00
Benjamin
d9a2efafb4 Add v3.0 observability roadmap
Signed-off-by: Benjamin <benjamin@yunify.com>
2020-01-19 16:35:09 +08:00
KubeSphere CI Bot
461dd9a00c Merge pull request #1628 from soulseen/fix/image_search
remove schema if required and add check SSL
2020-01-16 10:29:00 +08:00
zhuxiaoyang
1e68170f89 update unit test
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2020-01-15 18:59:48 +08:00
zhuxiaoyang
444e24bd48 remove schema if requiredss and add Check SSL
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2020-01-14 20:37:05 +08:00
pengfei
62d8d6aaab fix typo in roadmap.md, add new diagram, refine README (#1766)
* fix typo in roadmap.md, add new diagram, refine README

* fix typo

Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2020-01-14 20:00:32 +08:00
Wiley Wang
66850ee3ee Add API for setting default storage class (#1757)
Signed-off-by: Xin Wang <wileywang@yunify.com>
2020-01-14 19:57:34 +08:00
zryfish
f022b28ccc Update .travis.yml (#1771) 2020-01-14 19:57:12 +08:00
zryfish
f6dba744f9 Update .travis.yml 2020-01-14 19:18:46 +08:00
周鹏飞@yunify
7fa0306035 fix typo
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2020-01-14 16:37:24 +08:00
周鹏飞@yunify
841bd3aa5c fix typo in roadmap.md, add new diagram, refine README 2020-01-14 16:21:25 +08:00
KubeSphere CI Bot
4068757534 Merge pull request #1753 from FeynmanZhou/readme
refine readme guide, remove R icon in logo
2020-01-13 15:32:59 +08:00
周鹏飞@yunify
0447701b13 update com.cn to io, add roadmap
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>

Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>

Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2020-01-13 14:38:17 +08:00
hongming
71849f028f [WIP] API refactor (#1737)
* refactor openpitrix API

Signed-off-by: hongming <talonwan@yunify.com>

* add openpitrix mock client

Signed-off-by: hongming <talonwan@yunify.com>

* refactor tenant API

Signed-off-by: hongming <talonwan@yunify.com>

* refactor IAM API

Signed-off-by: hongming <talonwan@yunify.com>

* refactor IAM API

Signed-off-by: hongming <talonwan@yunify.com>
2020-01-13 13:36:21 +08:00
周鹏飞@yunify
a15c4ac24a refine readme guide
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2020-01-11 12:43:37 +08:00
KubeSphere CI Bot
ba809e3497 Merge pull request #1677 from runzexia/devops-crontribute-guide
devops dev guides
2020-01-06 12:17:00 +08:00
zryfish
c40d1542a2 refactor code structure (#1738) 2020-01-04 12:44:54 +08:00
zryfish
eceadec69c devlopment branch (#1736) 2020-01-02 20:52:00 +08:00
huanggze
4edf909c2f add monitoring dev guides
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-12-23 21:46:50 +08:00
huanggze
8022de126c add logging dev guides
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-12-23 21:12:08 +08:00
runzexia
af028b8d92 Update Kubesphere-code-layout.md 2019-12-23 16:36:52 +08:00
zhuxiaoyang
0427296dcb update s2i doc
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-12-23 11:49:42 +08:00
pengfei
5812b88848 refine devops-pipeline-overview.md 2019-12-23 11:40:30 +08:00
zhuxiaoyang
c022517637 Merge branch 's2i-doc' of https://github.com/soulseen/kubesphere into s2i-doc 2019-12-23 11:02:13 +08:00
zhuxiaoyang
5d12701ca4 update s2i arch
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-12-23 11:01:47 +08:00
pengfei
f7b797eda9 refine README.md 2019-12-23 11:01:21 +08:00
pengfei
5a1bfcc0ef refine s2i_b2i_overview.md 2019-12-23 10:47:25 +08:00
KubeSphere CI Bot
ff0ffe8650 Merge pull request #1691 from FeynmanZhou/master
add powered-by-kubesphere.md
2019-12-20 16:22:50 +08:00
周鹏飞@yunify
81cf0b6499 update markdown format
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-12-20 16:21:07 +08:00
周鹏飞@yunify
b51b2f56fc add powered-by-kubesphere.md
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>

Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>

Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-12-20 12:17:49 +08:00
zhuxiaoyang
7eebc47784 update s2i docs
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-12-19 19:19:10 +08:00
runzexia
656e6cba21 add some docs for kubesphere code layout
Signed-off-by: runzexia <runzexia@yunify.com>
2019-12-19 15:59:50 +08:00
KubeSphere CI Bot
1bcc27a68f Merge pull request #1679 from rayzhou2017/master
Update Readme
2019-12-19 14:32:49 +08:00
pengfei
4e9f833726 refine Readme description 2019-12-19 14:30:52 +08:00
Ray Zhou
685d7e9821 Update Readme
>>>>>>> 13f4c4a289f66e9a012327c508c62ee953e3025c
2019-12-18 12:22:49 +08:00
runzexia
de093a20f7 devops dev guides
Signed-off-by: runzexia <runzexia@yunify.com>
2019-12-17 16:48:54 +08:00
zryfish
ea88c8803d use istio client-go library instead of knative (#1661)
use istio client-go library instead of knative
bump kubernetes dependency version
change code coverage to codecov
2019-12-13 11:26:18 +08:00
KubeSphere CI Bot
f249a6e081 Merge pull request #1659 from soulseen/fix/struct_memory_address
fix jenkins request func parameters
2019-12-12 15:01:47 +08:00
zhuxiaoyang
6d45c9cbac fix jenkins request func parameters
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-12-12 14:39:28 +08:00
zryfish
1b67c43731 remove dependency on kubernetes repo (#1651)
remove dependency on kubernetes/kubernetes repo
2019-12-10 14:46:55 +08:00
KubeSphere CI Bot
c9a51f913e Merge pull request #1646 from zryfish/add_router_crd
move custom apis to kapis
2019-12-09 14:41:46 +08:00
KubeSphere CI Bot
09aa278247 Merge pull request #1626 from zehuaiWANG/kubesphere-review
modified the resources
2019-12-09 14:29:46 +08:00
Jeff
432bd3310a move custom apis to kapis 2019-12-09 11:48:44 +08:00
Jeff
2968666376 move custom apis to kapis 2019-12-09 11:12:45 +08:00
KubeSphere CI Bot
455169b825 Merge pull request #1622 from FeynmanZhou/docs-2.1
add KubeSphere CLA
2019-12-05 19:31:45 +08:00
KubeSphere CI Bot
86b91a562f Merge pull request #1551 from runzexia/update-contribute-guide
contributing guide
2019-12-05 10:25:45 +08:00
zehuaiWANG
45ef79795d modified the resources 2019-12-03 14:12:23 +08:00
KubeSphere CI Bot
4cf7014ac7 Merge pull request #1625 from zehuaiWANG/kubesphere-add-default-param
kubesphere-add-default-param
2019-12-03 11:34:44 +08:00
zehuaiWANG
3b927ba847 kubesphere-add-default-param 2019-12-03 10:38:47 +08:00
runzexia
907a4f5f2b update
Signed-off-by: runzexia <runzexia@yunify.com>
2019-12-02 10:53:02 +08:00
周鹏飞@yunify
9431926a67 add demo environment info
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-12-02 00:24:04 +08:00
周鹏飞@yunify
696aa71300 add KubeSphere CLA
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-12-01 23:16:05 +08:00
pengfei
92d1a025bf Update How-to-run-KubeSphere-core.md 2019-11-29 00:26:40 +08:00
pengfei
5db70bce77 Update How-to-connect-remote-service.md 2019-11-29 00:13:11 +08:00
pengfei
99bf6d6219 refine how-to-build 2019-11-29 00:07:49 +08:00
runzexia
1d599c2634 all should run test
build should run fmt & vet

Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-26 20:53:51 +08:00
runzexia
50bc00b004 use telepresence to debug remote service
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-26 19:25:01 +08:00
runzexia
de2baa695b add project overrview
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-26 19:25:01 +08:00
runzexia
d9ac3c69b9 run kubesphere core in local env
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-26 19:25:00 +08:00
runzexia
1baa16b0aa contribete guide
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-26 19:25:00 +08:00
zryfish
618328e62e change router underlying resource apiversion (#1590) 2019-11-26 19:18:27 +08:00
zryfish
16d9c2aebb Change router apiversion (#1586)
* change router underlying resource apiversion
2019-11-26 16:53:01 +08:00
Jeff
c3069c7dfd add coveralls test coverage stats 2019-11-26 16:32:28 +08:00
Jeff
36bcfdcd99 add coveralls test coverage stats 2019-11-26 16:32:28 +08:00
KubeSphere CI Bot
97ea468121 Merge pull request #1565 from soulseen/fix/typo
fix typo
2019-11-21 22:04:48 +08:00
zhuxiaoyang
6db3a0ba3e fix typo
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-11-21 19:25:32 +08:00
zryfish
a7f67bd70c Update README.md
Add go report badge
2019-11-21 17:50:32 +08:00
zryfish
d3724bd36e Update .travis.yml
Remove golint installation
2019-11-21 11:19:00 +08:00
KubeSphere CI Bot
1f5defb044 Merge pull request #1465 from FeynmanZhou/docs-2.1
update readme to 2.1
2019-11-12 10:31:10 +08:00
周鹏飞@yunify
994b74f89a update date, add minimal installation hints
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-11-12 10:20:15 +08:00
周鹏飞@yunify
ff5239545d fix typo
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-11-12 09:54:32 +08:00
周鹏飞@yunify
6e16ea26f5 update readme to 2.1
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-11-12 09:51:27 +08:00
Jeff
443e37d8bd change web kubectl to use sa 2019-11-09 17:38:35 +08:00
Jeff
2c94cfddf1 fix router annotations 2019-11-09 17:38:35 +08:00
KubeSphere CI Bot
b6f65272c8 Merge pull request #1434 from wansir/master
fix openpitrix resource sort param
2019-11-08 17:27:07 +08:00
hongming
981669ca5a fix openpitrix resource sort param
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-08 17:13:26 +08:00
KubeSphere CI Bot
948f293d46 Merge pull request #1418 from wansir/master
support node status filter
2019-11-08 14:47:07 +08:00
hongming
7a909e574e support node status filter 2019-11-08 10:45:58 +08:00
KubeSphere CI Bot
e7bb158e4f Merge pull request #1420 from wansir/kubectl
fix terminal resize
2019-11-07 23:25:07 +08:00
hongming
313bd5c050 fix terminal resize 2019-11-07 22:52:43 +08:00
KubeSphere CI Bot
75d1f9700a Merge pull request #1403 from wansir/kubectl
refactor kubectl websocket API
2019-11-07 13:45:06 +08:00
hongming
2c52a7064c refactor kubectl websocket API
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-07 13:29:42 +08:00
KubeSphere CI Bot
5cc4169244 Merge pull request #1392 from runzexia/refine-job-rerun
job rerun with resourceVersion
2019-11-07 12:09:06 +08:00
runzexia
c0533295a9 resourceVersion should be required
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-06 21:24:54 +08:00
runzexia
e72b0be0c9 job rerun with resourceVersion
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-06 21:22:01 +08:00
KubeSphere CI Bot
0c11778e01 Merge pull request #1384 from huanggze/timeout
fix: redefine prometheus client timeout
2019-11-06 17:49:04 +08:00
huanggze
b7fce91ac7 fix: redefine prometheus client timeout
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-11-06 17:38:18 +08:00
KubeSphere CI Bot
8dc4a14483 Merge pull request #1361 from wansir/master
refine workspaces-manager rules
2019-11-05 17:00:00 +08:00
hongming
b9d218316a refine workspaces-manager rules
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-05 15:42:49 +08:00
KubeSphere CI Bot
857faac9c2 Merge pull request #1358 from wansir/master
support querying resources without paging
2019-11-05 14:48:00 +08:00
KubeSphere CI Bot
9822429c35 Merge pull request #1356 from runzexia/refine-devops-not-enable-log
refine devops not enable log
2019-11-05 14:46:59 +08:00
hongming
c1dccd4620 support querying resources without paging
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-05 14:24:07 +08:00
runzexia
11ac54639b refine devops not enable log
Signed-off-by: runzexia <runzexia@yunify.com>
2019-11-05 13:57:23 +08:00
Jeff
da362aff4e fix slow component status api 2019-11-05 09:12:50 +08:00
Jeff
6dcf1e4cda fix slow component status api 2019-11-04 17:12:51 +08:00
KubeSphere CI Bot
24cbc083b0 Merge pull request #1341 from wansir/policy-rules
refine iam policy rules
2019-11-04 14:39:59 +08:00
hongming
636ace1b86 refine iam policy rules
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-04 12:48:00 +08:00
KubeSphere CI Bot
04f6eba711 Merge pull request #1333 from shinebayar-g/fix/contrib
fix broken link
2019-11-04 06:57:58 +08:00
shinebayar-g
c0ebdc7ec7 fix broken link
Signed-off-by: shinebayar-g <shinebayar.gansukh@gmail.com>
2019-11-03 23:53:57 +08:00
KubeSphere CI Bot
1da9af6c4d Merge pull request #1327 from kubesphere/update-app-store-screenshot
update app-store screenshot
2019-11-03 22:25:58 +08:00
pengfei
53b0e55f72 Update README_zh.md 2019-11-03 14:48:01 +08:00
KubeSphere CI Bot
5d0ea5dd39 Merge pull request #1322 from wansir/policy-rules
refine iam policy rules
2019-11-02 23:18:58 +08:00
KubeSphere CI Bot
d7a73c003f Merge pull request #1310 from wansir/iam
fix: delete propagation policy
2019-11-02 23:16:58 +08:00
hongming
8b037cef3f refine iam policy rules
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-02 13:28:12 +08:00
hongming
228ce54f4f fix: delete propagation policy
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-01 16:07:04 +08:00
KubeSphere CI Bot
cae0911d46 Merge pull request #1290 from wansir/bug-fix
fix: privilege escalation
2019-11-01 15:10:58 +08:00
hongming
0177baf916 fix: privilege escalation
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-31 15:47:49 +08:00
KubeSphere CI Bot
6790844340 Merge pull request #1250 from huanggze/dev
add back metric workload_memory_usage
2019-10-30 17:57:56 +08:00
huanggze
82db9fd721 add metrics workload_memory_usage
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-29 16:57:59 +08:00
KubeSphere CI Bot
976bd16542 Merge pull request #1213 from wansir/caddy
improve path exclusion rule
2019-10-28 11:20:56 +08:00
hongming
2d14a0f589 improve path exclusion rule
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-25 18:44:07 +08:00
KubeSphere CI Bot
9bf01ebe6a Merge pull request #1199 from soulseen/fix/sonar
fix set sonarqube options
2019-10-25 14:26:55 +08:00
zhuxiaoyang
f9bbaeb9d6 fix set sonarqube options
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-10-25 13:24:59 +08:00
KubeSphere CI Bot
59de7f610b Merge pull request #1181 from wansir/workspace-controller
fix: do not delete devops project when devops is not enabled
2019-10-25 11:40:54 +08:00
hongming
34e15c2bdc fix: do not delete devops project when devops is not enabled
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-25 02:25:01 +08:00
KubeSphere CI Bot
f16bdf0c3d Merge pull request #1170 from huanggze/master
add metric  namespace_configmap_count
2019-10-24 20:52:55 +08:00
KubeSphere CI Bot
0b9326862c Merge pull request #1169 from wansir/openpitrix
fix: deployed instances counting error
2019-10-24 20:51:54 +08:00
huanggze
7ccd23c720 add metric namespace_configmap_count
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-24 15:16:51 +08:00
hongming
6110889922 fix: deployed instances counting error
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-24 14:39:45 +08:00
KubeSphere CI Bot
a974766ef6 Merge pull request #1159 from wansir/master
fix: allow workspace-viewer view audits log
2019-10-24 11:22:54 +08:00
hongming
2c9ada7c69 fix: allow workspace-viewer view audits log
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-24 03:00:43 +08:00
KubeSphere CI Bot
ffa3741aa0 Merge pull request #1111 from wansir/master
feat: support user-facing role filter
2019-10-22 09:52:53 +08:00
KubeSphere CI Bot
af5d7de53f Merge pull request #1109 from wansir/openpitrix
support application sorting
2019-10-22 09:52:48 +08:00
hongming
acfcd619e4 feat: support user-facing role filter
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-21 17:56:41 +08:00
hongming
2352e2a526 support application sorting
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-21 15:32:12 +08:00
KubeSphere CI Bot
6bb31198dc Merge pull request #1104 from wansir/master
fix: null pointer exception
2019-10-21 11:28:47 +08:00
hongming
6ac00afa9a fix: null pointer exception
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-21 10:47:17 +08:00
Jeff
02269bb9d7 add leader election to controller manager 2019-10-20 18:45:03 +08:00
KubeSphere CI Bot
d8dc4c543e Merge pull request #1095 from wansir/master
refine policy rules
2019-10-19 16:25:52 +08:00
hongming
42f6ba4935 refine policy rules
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-18 18:11:33 +08:00
KubeSphere CI Bot
7a6935ff17 Merge pull request #607 from wansir/token-management
feat: token management
2019-10-18 16:23:46 +08:00
hongming
2024e928a2 feat: support resource owner password credentials grant
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-18 16:08:56 +08:00
KubeSphere CI Bot
03eba96c50 Merge pull request #1068 from wansir/app
feat: support app.k8s.io applications paging query
2019-10-18 11:22:47 +08:00
KubeSphere CI Bot
d343d25eb2 Merge pull request #1073 from huanggze/es-error
refine es error format
2019-10-17 19:03:46 +08:00
huanggze
684632d9ac refine es error format
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-17 17:23:26 +08:00
KubeSphere CI Bot
c02417bd9b Merge pull request #1038 from wansir/sort-resource
fix: sort deployment by last update time
2019-10-17 17:07:46 +08:00
hongming
e1a70bc8cd feat: support app.k8s.io applications paging query
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-17 17:04:48 +08:00
KubeSphere CI Bot
3b9e743211 Merge pull request #1065 from huanggze/devops-disabled
monitor: no need to produce error when devops is disabled
2019-10-17 16:59:46 +08:00
KubeSphere CI Bot
3dd3f8870d Merge pull request #1063 from huanggze/download
change download log file type to plain text explictly
2019-10-17 16:48:45 +08:00
huanggze
f8bf984191 monitor: no need to produce error when devops is disabled
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-17 15:53:48 +08:00
huanggze
1a40f49416 explicate file type
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-17 15:07:29 +08:00
hongming
0ee6b8d7db fix: sort deployment by last update time
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-16 16:52:00 +08:00
KubeSphere CI Bot
90961a24df Merge pull request #1005 from huanggze/monit
fix crash when monitoring component is disabled
2019-10-16 14:30:45 +08:00
KubeSphere CI Bot
c3ccc3c2e8 Merge pull request #1004 from runzexia/update-devops-flyway-image-
update devops flyway image for arm
2019-10-16 14:29:45 +08:00
KubeSphere CI Bot
d531028c41 Merge pull request #991 from wansir/app-management
fix: add missing parameter
2019-10-16 14:27:44 +08:00
KubeSphere CI Bot
ca63dcb404 Merge pull request #990 from soulseen/fix/github_webhook
fix github webhook Content type support
2019-10-16 13:59:44 +08:00
huanggze
dbfb7f8fc9 fix crash when monit is disabled
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-15 16:06:50 +08:00
runzexia
e0613368a8 update devops flywau image for arm
Signed-off-by: runzexia <runzexia@yunify.com>
2019-10-15 15:42:23 +08:00
zhuxiaoyang
c582079438 fix github webhook Content type support
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-10-15 10:41:40 +08:00
hongming
26a7f2b75e fix: add missing parameter
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-15 10:33:21 +08:00
KubeSphere CI Bot
cfc1929a80 Merge pull request #946 from huanggze/highlight
remove log highlighting
2019-10-12 18:53:51 +08:00
KubeSphere CI Bot
f29a10e487 Merge pull request #938 from wansir/controller
refine clusterrolebinding controller
2019-10-12 18:51:10 +08:00
KubeSphere CI Bot
c52f928455 Merge pull request #944 from runzexia/do-not-set-md5
do not set content md5 manually
2019-10-12 18:50:09 +08:00
huanggze
1e7b74818a remove log highlighting
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-10-12 17:53:13 +08:00
runzexia
23c1560a35 not set content md5 manually
Signed-off-by: runzexia <runzexia@yunify.com>
2019-10-12 17:21:10 +08:00
hongming
4b7b49487b refine clusterrolebinding controller
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-12 14:26:29 +08:00
KubeSphere CI Bot
4d79df4062 Merge pull request #919 from runzexia/fix-missing-scheme-in-kubeconfig
fix missing scheme in kubeconfig
2019-10-11 23:34:50 +08:00
runzexia
54f518ff0d add master url scheme prefix
Signed-off-by: runzexia <runzexia@yunify.com>
2019-10-11 23:09:43 +08:00
KubeSphere CI Bot
593304a8ce Merge pull request #903 from wansir/namespace-controller
fix: return early when err is nil
2019-10-11 21:00:57 +08:00
Jeff
3f5cbcd4f9 fix controller manager bug 2019-10-11 21:00:50 +08:00
hongming
78c40dc20b fix: return early when err is nil
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-11 15:44:11 +08:00
KubeSphere CI Bot
466fd56262 Merge pull request #894 from wansir/s2i
update namespace operator policy rules
2019-10-11 10:57:50 +08:00
KubeSphere CI Bot
458603be08 Merge pull request #896 from lilien1010/patch-1
修正source to image 链接404的问题
2019-10-10 19:36:49 +08:00
Lien
1ca2b504e3 修正source to image 链接404的问题 2019-10-10 18:30:43 +08:00
hongming
3c802ebb3d support s2ibuilder
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-10 17:33:57 +08:00
KubeSphere CI Bot
b63751ed38 Merge pull request #889 from wansir/annotation
refine annotation key
2019-10-10 15:12:50 +08:00
hongming
c41b2577bb refine annotation key
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-10 14:35:47 +08:00
Jeff
a03433d538 strip senstive information 2019-10-10 14:10:06 +08:00
KubeSphere CI Bot
aba512659f Merge pull request #878 from wansir/update-iam-policy
update iam policy
2019-10-10 11:58:50 +08:00
hongming
42e1b823e2 update iam policy
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-10 11:05:44 +08:00
KubeSphere CI Bot
a8122a58c4 Merge pull request #881 from runzexia/input-omitempty
input omitempty
2019-10-09 17:34:49 +08:00
runzexia
9131c4339b input omitempty
Signed-off-by: runzexia <runzexia@yunify.com>
2019-10-09 14:36:12 +08:00
KubeSphere CI Bot
8fcdce8903 Merge pull request #876 from wansir/fix-controller
remove useless logs
2019-10-08 20:57:06 +08:00
hongming
9cff0cc942 remove useless logs
Signed-off-by: hongming <talonwan@yunify.com>
2019-10-08 17:20:19 +08:00
KubeSphere CI Bot
65c803fd3a Merge pull request #835 from runzexia/cleanup-s2ibinary
clean up s2ibinary
2019-10-08 16:18:08 +08:00
runzexia
1406961e8c fix typo
Signed-off-by: runzexia <runzexia@yunify.com>
2019-10-08 15:18:04 +08:00
calvinyv
f5392df08d Update README.md 2019-10-04 22:38:41 +08:00
KubeSphere CI Bot
9b32797437 Merge pull request #836 from wansir/fix-pod-filter
fix: filter pod by service name
2019-09-29 17:23:13 +08:00
KubeSphere CI Bot
366d7f03a5 Merge pull request #841 from huanggze/log-options
log: cleanup es client options
2019-09-29 17:22:57 +08:00
huanggze
11854e3320 log: cleanup es client options
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-29 16:20:47 +08:00
hongming
fcd8d8ee1c fix: filter pod by service name
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-29 15:23:51 +08:00
runzexia
8f9c2126f7 fix vet
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-29 15:20:02 +08:00
runzexia
d453a3b245 clean up s2ibinary
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-29 15:04:11 +08:00
Jeff
d2b1bf4ba0 skip informer creating when corresponding crd not exists 2019-09-29 13:32:07 +08:00
KubeSphere CI Bot
7ad77c32fc Merge pull request #831 from huanggze/metrics
metrics: add missing placeholder
2019-09-29 12:38:58 +08:00
KubeSphere CI Bot
f9fe577df3 Merge pull request #811 from wansir/refactor-openpitrix
fix: filter app template in built-in repo
2019-09-29 12:37:57 +08:00
huanggze
a0588747f8 metrics: add missing placeholder
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-29 12:04:25 +08:00
hongming
2acb68e354 feat: token management
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-29 12:04:13 +08:00
hongming
bfb8924eb3 refactor: openpitrix module
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-29 10:38:24 +08:00
KubeSphere CI Bot
3c7074b40d Merge pull request #821 from soulseen/format
format
2019-09-28 21:59:12 +08:00
zhuxiaoyang
778b8a1f3f format
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-09-28 21:01:32 +08:00
KubeSphere CI Bot
24dd7eaaab Merge pull request #818 from soulseen/fix/pipeline_input
fix pipeline input support any type
2019-09-28 18:03:57 +08:00
zhuxiaoyang
053f572ad6 fix pipeline input support any type
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-09-28 17:57:24 +08:00
KubeSphere CI Bot
4aebee51e8 Merge pull request #815 from runzexia/401-428
parse 401 err, change code to 428
2019-09-28 16:23:12 +08:00
Jeff
967c4ca2fe fix stripping config options 2019-09-28 00:12:55 +08:00
runzexia
f6c616f1e9 parse 401 err, change code to 428
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-27 23:50:07 +08:00
KubeSphere CI Bot
416719aae3 Merge pull request #813 from huanggze/log-highlight
log: fix crash if api caller has no access to provided namespaces
2019-09-27 20:11:56 +08:00
Jeff
69ab71d629 fix hypersphere apis installation 2019-09-27 20:11:51 +08:00
huanggze
bbfb546246 log: fix crash if api caller has no access to provided namespaces
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-27 16:22:24 +08:00
KubeSphere CI Bot
106354819e Merge pull request #809 from runzexia/update-s2ib-download-url
update s2i download url
2019-09-27 14:33:57 +08:00
runzexia
731c426bfd update s2i download url
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-27 14:29:40 +08:00
Jeff
86ae12d170 fix hypersphere apis installation 2019-09-26 23:20:14 +08:00
Jeff
5382a74acb fix apigateway clientset bug 2019-09-26 21:11:44 +08:00
Jeff
28af678748 fix apigateway clientset bug 2019-09-26 19:29:16 +08:00
KubeSphere CI Bot
fe0108d28f Merge pull request #799 from huanggze/es-options
log: fix elastic version detection
2019-09-26 19:26:11 +08:00
huanggze
2b30db43af log: fix elastic version detection
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-26 19:23:17 +08:00
KubeSphere CI Bot
49285bedd8 Merge pull request #798 from runzexia/fix-job-trigger-typo
fix typo & regenerate swagger
2019-09-26 19:01:56 +08:00
runzexia
2f87ad7e2c fmt swagger.json
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-26 18:54:53 +08:00
runzexia
02fd803ca9 fix typo & regenerate swagger
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-26 16:46:15 +08:00
KubeSphere CI Bot
24b0a97396 Merge pull request #668 from wansir/refactor-openpitrix
refactor: openpitrix module
2019-09-26 14:00:11 +08:00
hongming
1b5681c12b refactor: openpitrix module
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-26 13:41:00 +08:00
KubeSphere CI Bot
8bd7a2d5bf Merge pull request #793 from runzexia/jenkins-honorRefspec
default set honarRefspec true
2019-09-26 11:55:56 +08:00
runzexia
047c5bf514 default set honarRefspec true
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-26 11:31:55 +08:00
KubeSphere CI Bot
31e23d73c3 Merge pull request #792 from FeynmanZhou/master
refine readme, add more cncf icons and screenshot
2019-09-26 09:24:56 +08:00
周鹏飞@yunify
284bd1470c refine readme, add more cncf icons and screenshot
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-09-26 00:22:14 +08:00
Jeff
8d853ccbe7 fix ks account options 2019-09-25 17:03:20 +08:00
Jeff
aee01ccd0b fix ks account options 2019-09-25 17:03:20 +08:00
KubeSphere CI Bot
d54a8a4675 Merge pull request #789 from huanggze/metrics
monitor: filter out non-labeled workspace
2019-09-25 17:02:11 +08:00
KubeSphere CI Bot
f8531ec2ba Merge pull request #768 from huanggze/log-download
feat: allow to export logs
2019-09-25 15:57:55 +08:00
huanggze
2ad1e49dcc monitor: filter out non-labeled workspace
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-25 15:55:26 +08:00
huanggze
a71b35db9c feat: allow to export logs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-25 14:03:47 +08:00
Jeff
d0dc66cf28 fix servicemesh options nil bug 2019-09-25 01:47:46 +08:00
KubeSphere CI Bot
284c0d6425 Merge pull request #783 from soulseen/resource_map
update resourceMap
2019-09-24 18:40:10 +08:00
zhuxiaoyang
563f554a98 update resourceMap
Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
2019-09-24 10:50:44 +08:00
Jeff
468f7eddca fix config nil error 2019-09-23 14:30:48 +08:00
KubeSphere CI Bot
3dca9feb0f Merge pull request #771 from wansir/fix-ldap-client
fix: ldap connection pool leak
2019-09-23 14:27:10 +08:00
KubeSphere CI Bot
1361106bdd Merge pull request #774 from wansir/fix-controller
fix: controller error handle function
2019-09-21 17:55:54 +08:00
hongming
a4281989c3 fix: controller error handle function
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-20 20:58:19 +08:00
Jeff
f85f6b6b58 fix request logs 2019-09-20 17:45:31 +08:00
hongming
11570288af fix: ldap connection pool
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-20 14:02:05 +08:00
Jeff
49dacd3e70 fix kubesphere gateway bug 2019-09-19 14:24:48 +08:00
KubeSphere CI Bot
3fc4207585 Merge pull request #756 from huanggze/monitor-2.1-a
refactor monitor module
2019-09-19 13:44:53 +08:00
huanggze
0e6a19a779 comment-1
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-19 11:56:12 +08:00
KubeSphere CI Bot
84c6997711 Merge pull request #765 from wnxn/remove-ceph-secret-controller
Remove creating Ceph secret controller
2019-09-19 11:12:52 +08:00
Xin Wang
8dbefd74fe Remove creating Ceph secret controller 2019-09-19 10:49:24 +08:00
KubeSphere CI Bot
0b50a5db75 Merge pull request #762 from soulseen/fix/cronjob_parse
fix cronjob msg parse
2019-09-18 16:20:08 +08:00
huanggze
df6ed5e995 refactor monitor module
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-18 15:53:25 +08:00
soulseen
31eacd6c29 fix cronjob msg parse
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-09-18 15:50:17 +08:00
Jeff
c53bdcad60 fix apiserver setup logs 2019-09-17 23:44:42 +08:00
KubeSphere CI Bot
06e16b5087 Merge pull request #757 from zryfish/new_options
refactor logging options
2019-09-17 20:40:52 +08:00
Jeff
f61c5e09ba refactor logging options 2019-09-17 16:00:54 +08:00
KubeSphere CI Bot
fa1e62f6ac Merge pull request #754 from runzexia/clean-golog
cleanup glog
2019-09-17 13:45:08 +08:00
runzexia
984764979a do not need glog
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-16 20:31:07 +08:00
Jeff
97c9a1786a 1. change glog to klog
2. move types to api package to avoid cyclic import
2019-09-16 18:46:28 +08:00
KubeSphere CI Bot
79735c4543 Merge pull request #753 from wansir/fix-npe
fix: null pointer exception
2019-09-16 18:31:51 +08:00
hongming
7fef26233b fix: NPE
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-16 18:22:33 +08:00
calvinyv
693ca1e8b1 fix zh sample command 2019-09-16 17:54:18 +08:00
calvinyv
bc3ec2a7d8 fix sample command 2019-09-16 17:53:22 +08:00
KubeSphere CI Bot
6594112ba9 Merge pull request #751 from runzexia/docker-api-version-negotiation
docker api version negotiation
2019-09-16 15:16:51 +08:00
KubeSphere CI Bot
635dcc9b39 Merge pull request #739 from wnxn/attach-controller
add expand volume controller
2019-09-16 14:55:51 +08:00
runzexia
2759b20be6 docker api version negotiation
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-16 14:44:53 +08:00
Xin Wang
55483e6578 add expand volume controller
Signed-off-by: Xin Wang <wileywang@yunify.com>
2019-09-16 14:20:07 +08:00
KubeSphere CI Bot
7c049a24da Merge pull request #744 from satrobit/master
Corrected the scripts directory in README files
2019-09-13 23:40:50 +08:00
satrobit
45e108ab13 Corrected the scripts directory in README files 2019-09-13 19:44:51 +04:30
Jeff
18243b8b64 add sc informer 2019-09-12 16:29:22 +08:00
KubeSphere CI Bot
715c1a462d Merge pull request #716 from runzexia/jenkins-pageable-response
get runs & pipelines pageable resposne
2019-09-12 15:31:06 +08:00
Jeff
5dde737e6c add more option comments 2019-09-12 15:29:53 +08:00
KubeSphere CI Bot
66af315a85 Merge pull request #737 from runzexia/devops-disable-logic
when devops is disabled, there is no need to clean up the devops data.
2019-09-12 15:28:50 +08:00
runzexia
95a9d5ff20 when devops is disabled, there is no need to clean up the devops data.
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-12 14:16:26 +08:00
KubeSphere CI Bot
ee1c5f9d5f Merge pull request #736 from runzexia/update-devops-flags
update devops flags default value
2019-09-12 14:10:50 +08:00
runzexia
f0ab59f75b fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-12 14:07:37 +08:00
runzexia
17f9b0879f refmt code
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-12 11:47:12 +08:00
runzexia
85a0586529 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-12 11:25:58 +08:00
runzexia
8d2d8f64a0 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-12 11:09:17 +08:00
runzexia
307309269c Merge branch 'master' into jenkins-pageable-response
Signed-off-by: runzexia <runzexia@yunify.com>

# Conflicts:
#	pkg/models/devops/devops.go
2019-09-12 11:04:32 +08:00
runzexia
60298d9e20 update devops flags default value
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-12 10:46:19 +08:00
Jeff
495785092e add ks-apiserver options 2019-09-12 02:09:17 +08:00
Jeff
e4d84b020c add ks-apiserver options 2019-09-12 01:33:07 +08:00
Jeff
c1cec8e1bc add ks-apiserver options 2019-09-12 00:50:42 +08:00
Jeff
27cdb3a304 add ks-apiserver options 2019-09-12 00:10:07 +08:00
Jeff
ddaf5b181b add ks-apiserver options 2019-09-11 23:54:14 +08:00
Jeff
c199b1afc9 add ks-apiserver options 2019-09-11 23:54:14 +08:00
zryfish
758f8d7a8c Update Dockerfile 2019-09-11 21:12:29 +08:00
KubeSphere CI Bot
1dcb9232d7 Merge pull request #702 from zryfish/refactor_clientset
refactor dependent service client creation
2019-09-11 20:27:49 +08:00
Jeff
96d2ac4112 This is a huge commit, it does following things:
1. refactor kubesphere dependency service client creation, we can
disable dependency by config
2. dependencies can be configured by configuration file
3. refactor cmd package using cobra.Command, so we can use hypersphere
to invoke command sepearately. Later we only need to build one image to
contains all kubesphere core components. One command to rule them all!
4. live reloading configuration currently not implemented
2019-09-11 19:53:35 +08:00
KubeSphere CI Bot
52a1c2e619 Merge pull request #689 from huanggze/log-resource-name
refine log search
2019-09-11 19:12:49 +08:00
KubeSphere CI Bot
1cf74e4c2c Merge pull request #723 from huanggze/pvc
add pvc utilisation metrics
2019-09-11 16:48:06 +08:00
huanggze
7bcec5b608 add pvc utilisation metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-11 11:41:47 +08:00
KubeSphere CI Bot
2f48909d60 Merge pull request #718 from runzexia/multibranch-pipeline-trigger
multi branch pipeline trigger
2019-09-11 11:39:50 +08:00
KubeSphere CI Bot
d283af6932 Merge pull request #720 from soulseen/improve/check
update check pipeline script & cronjob script
2019-09-11 10:40:49 +08:00
huanggze
8d85a56386 allow to search deleted workload logs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-11 10:35:44 +08:00
soulseen
e786fa98ba update check pipeline script & cronjob script
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-09-10 18:14:18 +08:00
runzexia
2a7ada8ceb multi branch pipeline trigger
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-10 17:01:08 +08:00
runzexia
5afb7347d3 use klog
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-10 11:08:52 +08:00
runzexia
60220d9487 get runs & pipelines pageable resposne
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-10 11:06:25 +08:00
huanggze
1badf13538 use filter instead of must
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-09 17:38:51 +08:00
huanggze
78e8227f45 comment-1
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-09 17:38:51 +08:00
huanggze
fd28250015 resolve conflicts
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-09 17:38:27 +08:00
KubeSphere CI Bot
015caa4023 Merge pull request #711 from magicsong/porter
add porter-system
2019-09-09 16:28:49 +08:00
magicsong
fe4115ff3e add porter-system 2019-09-09 14:09:57 +08:00
KubeSphere CI Bot
8e66cea42b Merge pull request #656 from huanggze/log-2.1
logging: use elastic client for go
2019-09-09 13:34:09 +08:00
huanggze
9af0a6db2f remove unused func param
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-09 12:31:12 +08:00
KubeSphere CI Bot
9932d2ba5a Merge pull request #701 from huanggze/remove-filter
remove unused types and funcs
2019-09-08 14:15:48 +08:00
KubeSphere CI Bot
746248ab87 Merge pull request #692 from magicsong/nsnp
support calico with k8s storage
2019-09-08 14:13:49 +08:00
KubeSphere CI Bot
4e4664ef7e Merge pull request #708 from runzexia/change-status-code
api do not return 401
2019-09-08 14:11:48 +08:00
runzexia
60b484ce4b do not return 401 2019-09-06 17:37:36 +08:00
KubeSphere CI Bot
cd739022fd Merge pull request #693 from wnxn/pvc-stats
Add PVC stats API
2019-09-05 15:09:46 +08:00
Xin Wang
87865f9416 add pvc stats api
Signed-off-by: Xin Wang <wileywang@yunify.com>
2019-09-05 14:15:46 +08:00
magicsong
d3e694c6f0 change test image name 2019-09-04 17:49:44 +08:00
huanggze
4bd17d132f remove unused types and funcs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-04 15:45:26 +08:00
huanggze
82488ac37a handle error for type assertion
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-04 15:14:31 +08:00
huanggze
429573c837 comment-1
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-04 15:14:31 +08:00
huanggze
bfed3a6baa update dependencies
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-09-04 15:14:11 +08:00
Jeff
70293cc6fd fix vendor directory 2019-09-04 14:04:37 +08:00
KubeSphere CI Bot
289b8ebd2b Merge pull request #700 from zryfish/add_lint_dependency
add dependency scripts
2019-09-04 13:01:47 +08:00
Jeff
37d239bac1 add dependency scripts 2019-09-04 12:25:53 +08:00
KubeSphere CI Bot
0a47cc3479 Merge pull request #698 from zryfish/add_denpendency_update_script
Add denpendency update script
2019-09-04 12:08:01 +08:00
Jeff
0d41e0ba52 add dependency scripts 2019-09-04 11:15:35 +08:00
Jeff
88b8c357f7 Merge branch 'master' of https://github.com/kubesphere/kubesphere 2019-09-04 10:48:33 +08:00
KubeSphere CI Bot
59b782ceee Merge pull request #697 from runzexia/refine-openapi-gen
do not genereate unused structs
2019-09-04 10:42:01 +08:00
Jeff
f4a63e3f07 Merge branch 'master' of https://github.com/kubesphere/kubesphere 2019-09-03 19:43:50 +08:00
runzexia
560845af6c reformat code
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-03 17:42:08 +08:00
runzexia
b1af2fd92b mv go generete to makefile
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-03 17:39:06 +08:00
runzexia
03fba172ce do not genereate unused structs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-03 15:27:54 +08:00
KubeSphere CI Bot
7a5c24cc1b Merge pull request #684 from wansir/feat-horizontalpodautoscalers
feat: support horizontalpodautoscalers query
2019-09-02 20:37:45 +08:00
KubeSphere CI Bot
6d43f295ae Merge pull request #639 from soulseen/improve/search_image
add docker image search api
2019-09-02 17:20:00 +08:00
KubeSphere CI Bot
ec7ff9443c Merge pull request #634 from runzexia/s2ibin-upload
s2ibin upload
2019-09-02 17:18:45 +08:00
magicsong
82f5309a1c suppor k8s node etcd 2019-09-02 16:54:34 +08:00
KubeSphere CI Bot
972d835096 Merge pull request #686 from wansir/fix-email-regex
fix: email validation
2019-09-02 16:37:45 +08:00
runzexia
34efbc19a2 fix ci
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-02 16:28:31 +08:00
hongming
5ca67f6e0c fix: email validation
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-02 16:16:46 +08:00
runzexia
781783b61c use klog
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-02 15:34:51 +08:00
runzexia
91bca3cf53 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-02 15:33:11 +08:00
runzexia
3156362f6c Merge branch 'master' into s2ibin-upload
Signed-off-by: runzexia <runzexia@yunify.com>

# Conflicts:
#	vendor/modules.txt
2019-09-02 15:21:38 +08:00
soulseen
959791ead5 update & clean debug log
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-09-02 15:21:26 +08:00
KubeSphere CI Bot
76800b435c Merge pull request #643 from wansir/controller
fix: policy rules cannot be updated during upgrade
2019-09-02 15:21:00 +08:00
KubeSphere CI Bot
6ba27c5e4d Merge pull request #678 from runzexia/workarount-devops-count
get devops count by username
2019-09-02 14:40:00 +08:00
KubeSphere CI Bot
f036dfb6a4 Merge pull request #681 from soulseen/update_package
update package s2ioperator
2019-09-02 14:37:45 +08:00
hongming
6ae7657b3e fix: policy rules cannot be updated during upgrade
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-02 13:54:11 +08:00
runzexia
003bba5b62 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-09-02 12:58:47 +08:00
KubeSphere CI Bot
7924e12c4e Merge pull request #688 from FeynmanZhou/readme-zh
add Readme for Chinese version, refine Readme-En
2019-09-02 12:02:45 +08:00
周鹏飞@yunify
4698b78e7a add Readme for Chinese version, refine Readme-En
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-09-02 11:40:00 +08:00
Jeff
2c3c7b54a2 Merge branch 'master' of https://github.com/kubesphere/kubesphere 2019-09-02 10:45:00 +08:00
hongming
4368639580 feat: support horizontalpodautoscalers query
Signed-off-by: hongming <talonwan@yunify.com>
2019-08-30 16:14:33 +08:00
soulseen
bbd151e7aa update package s2ioperator
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-08-30 10:37:09 +08:00
KubeSphere CI Bot
9b7d495834 Merge pull request #679 from runzexia/bitbucket-support
create scm servers always return match server
2019-08-30 10:14:44 +08:00
runzexia
f0b241251f create scm servers always return match server
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-29 17:30:01 +08:00
runzexia
93db1f982e get devops count by username
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-28 15:47:15 +08:00
KubeSphere CI Bot
f22e8ea90e Merge pull request #670 from runzexia/bitbucket-support
Pipeline Support Bitbucket Scm
2019-08-27 22:56:45 +08:00
runzexia
31bbbe0c3e revert network change
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-27 17:42:38 +08:00
runzexia
9d250d4b03 support create bitbucket server pipeline
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-27 17:38:56 +08:00
runzexia
5b2d1b9378 Merge branch 'master' into bitbucket-support 2019-08-27 16:12:23 +08:00
runzexia
1a513a9aa3 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-27 15:30:57 +08:00
runzexia
f00917b025 reset to master
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-27 14:54:01 +08:00
Jeff
543b27c565 Merge branch 'master' of https://github.com/kubesphere/kubesphere 2019-08-27 11:29:43 +08:00
KubeSphere CI Bot
c6440ec6e5 Merge pull request #667 from wansir/fix-ldap-conn-pool
fix: recycle ldap connections in pool
2019-08-27 11:11:42 +08:00
hongming
abc7423053 fix: recycle ldap connections in pool
Signed-off-by: hongming <talonwan@yunify.com>
2019-08-27 10:55:57 +08:00
Jeff
ae7a304d9a Merge branch 'master' of https://github.com/kubesphere/kubesphere 2019-08-26 21:00:10 +08:00
KubeSphere CI Bot
defaa63d83 Merge pull request #624 from magicsong/nsnp
add ns networkpolicy, based on calicov3 api
2019-08-26 18:02:58 +08:00
Xuetao Song
1aa992a107 update gopath 2019-08-26 17:47:37 +08:00
runzexia
cee1f6425d refactor code
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-26 17:47:28 +08:00
runzexia
45ab9286a2 get & create scm server in jenkinsfile
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-26 14:22:39 +08:00
magicsong
b38acfd9e6 add etcd flag 2019-08-23 16:42:07 +08:00
magicsong
e33f5824b3 fix error 2019-08-23 11:13:42 +08:00
KubeSphere CI Bot
1684998299 Merge pull request #621 from wansir/fliter-support
support empty label filter
2019-08-22 16:09:37 +08:00
magicsong
122fb9035d fix conflict 2019-08-17 16:29:47 +08:00
KubeSphere CI Bot
b132d7af85 Merge pull request #649 from wansir/fix-workspace-rolebinding
fix: mistakenly delete workspace role binding
2019-08-17 16:11:56 +08:00
magicsong
6ce4b54ed5 fix 2019-08-17 16:08:11 +08:00
magicsong
7314064e83 temp commit 2019-08-17 15:34:02 +08:00
zryfish
2d52bb5681 Create installation_failure.md 2019-08-16 14:12:38 +08:00
KubeSphere CI Bot
a2a69e156e Merge pull request #645 from runzexia/update-code-gen-tool
code generate by $GEN-TOOL name
2019-08-15 19:24:52 +08:00
KubeSphere CI Bot
efc96f0515 Merge pull request #627 from runzexia/update-s2i
update s2i version
2019-08-15 19:22:53 +08:00
hongming
22e4a30c77 fix: mistakenly delete workspace role binding
Signed-off-by: hongming <talonwan@yunify.com>
2019-08-15 16:58:13 +08:00
runzexia
03d3aae821 update generate script
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-15 14:32:03 +08:00
runzexia
b754e17022 code generate by $GEN-TOOL name
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-14 22:04:53 +08:00
hongming
b93a0802f0 support empty label filter
Signed-off-by: hongming <talonwan@yunify.com>
2019-08-14 21:26:26 +08:00
runzexia
2a2cc9e72d update go.mod
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-14 18:01:05 +08:00
soulseen
8aadf7af34 add docker image search api
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-08-14 15:19:58 +08:00
runzexia
689c97215f Merge branch 'master' into update-s2i
Signed-off-by: runzexia <runzexia@yunify.com>

# Conflicts:
#	go.mod
#	go.sum
2019-08-13 17:32:38 +08:00
KubeSphere CI Bot
8a2ee1bd02 Merge pull request #636 from huanggze/master
fix pod quota metrics
2019-08-13 00:03:46 +08:00
huanggze
e61ca5dc2b fix pod quota metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-08-10 15:24:56 +08:00
KubeSphere CI Bot
f6ad6d53cc Merge pull request #635 from FeynmanZhou/readme
add architecture diagram and installation command record
2019-08-10 13:30:43 +08:00
周鹏飞@yunify
9ed6e6add6 update architecture diagram
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-08-10 07:34:51 +08:00
周鹏飞@yunify
46aff24bba add architecture diagram and installation command record 2019-08-10 00:27:46 +08:00
Jeff
4cd7bfe8b5 test pr 2019-08-09 14:11:41 +08:00
zryfish
68f163483d Create PULL_REQUEST_TEMPLATE.md 2019-08-09 14:01:38 +08:00
KubeSphere CI Bot
eea99f970f Merge pull request #628 from runzexia/add-s2i-binary-upload
refine generate tools & add CRD s2i binary
2019-08-09 13:48:43 +08:00
magicsong
90fa38851f add ns networkpolicy 2019-08-08 18:39:00 +08:00
runzexia
e7f6c821cd internal controller gen
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 14:26:46 +08:00
runzexia
d2fae44c2d add internal makefile
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 14:23:16 +08:00
runzexia
27d87be5b6 add servicemesh group file
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 12:12:49 +08:00
runzexia
9171101989 run fmt & vet before test
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 12:06:51 +08:00
runzexia
998dce21d2 remove install s2ibinary
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 12:03:22 +08:00
runzexia
4381877b7a remove s2ibinary controller & add apis/group file to reduce warning
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 11:59:07 +08:00
runzexia
8e93d23aff use go generate to genereate deepcopy, generate openapi for s2ibinary
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-08 11:34:50 +08:00
runzexia
fe249513e0 use deepcode gen
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 21:23:08 +08:00
runzexia
e5d59b75a8 use traditional controller tool to generate code 2019-08-07 21:05:12 +08:00
runzexia
bd5f916557 do not run some gen fuc
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 20:08:10 +08:00
runzexia
0337992042 run test one by one
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 19:49:13 +08:00
runzexia
c3786272d7 recover kube-open version
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 18:20:14 +08:00
runzexia
20df96f978 Revert "temp"
This reverts commit e4ff1b0bad.
2019-08-07 18:01:15 +08:00
runzexia
8c14d5a444 install controller-tool, should not affect go mod
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 17:55:37 +08:00
runzexia
7c8012891c gen client
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 17:11:00 +08:00
runzexia
0c0b203560 add type s2ibinary
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 16:09:18 +08:00
runzexia
e4ff1b0bad temp
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-07 14:32:07 +08:00
runzexia
b0d2bdbc19 regenerate api docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-06 17:13:29 +08:00
runzexia
b67d8210eb update s2i version
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-06 17:11:31 +08:00
KubeSphere CI Bot
e40f03de2f Merge pull request #620 from runzexia/devops-owners
add devops owners
2019-08-03 19:23:38 +08:00
KubeSphere CI Bot
cc15fbe983 Merge pull request #603 from runzexia/contribution-guide
Contribution guide
2019-08-02 11:10:37 +08:00
runzexia
935a2aed5b add devops owners
Signed-off-by: runzexia <runzexia@yunify.com>
2019-08-01 21:09:02 +08:00
KubeSphere CI Bot
bfa81db9db Merge pull request #617 from runzexia/fix-gitlab-1131
fix internal issue #1131
2019-08-01 11:10:36 +08:00
runzexia
12c0a48e06 update contrubuting guide
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-31 21:19:30 +08:00
runzexia
7bfff07181 Merge branch 'master' into contribution-guide 2019-07-31 21:16:22 +08:00
runzexia
5db5ca0f31 fix internal issue #1131
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-31 21:13:45 +08:00
KubeSphere CI Bot
d649e3d0bb Merge pull request #609 from runzexia/crd-gen
gen crd's api docs
2019-07-31 18:17:36 +08:00
KubeSphere CI Bot
13620f4b2c Merge pull request #614 from magicsong/netowner
📄 add networking owners
2019-07-31 18:08:36 +08:00
magicsong
77875c0078 📄 add networking owners 2019-07-31 12:03:07 +08:00
runzexia
f8d3b22750 add network crd doc gen
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-31 11:48:48 +08:00
runzexia
34ddd34944 Merge branch 'master' into crd-gen
Signed-off-by: runzexia <runzexia@yunify.com>

# Conflicts:
#	go.mod
#	go.sum
2019-07-31 11:31:41 +08:00
KubeSphere CI Bot
d713cb316a Merge pull request #613 from rayzhou2017/master
Update README
2019-07-31 10:59:37 +08:00
KubeSphere CI Bot
bb5e114f1b Merge pull request #608 from magicsong/wsnp
🌟 add support of workspace networkpolicy
2019-07-31 10:58:36 +08:00
magicsong
75d787f15f 🌟 add support of workspace networkpolicy 2019-07-31 10:31:31 +08:00
runzexia
de7fc0819f fix comment & add servicemesh gen
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-30 21:19:35 +08:00
runzexia
e85bed6293 update contributing guide
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-30 20:19:10 +08:00
runzexia
1c10391faf feat: add crd gen
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-30 13:36:54 +08:00
Ray Zhou
1374b1ceb4 Update README 2019-07-30 10:07:06 +08:00
KubeSphere CI Bot
9ce52aeb00 Merge pull request #612 from zheng1/master
Update OWNERS
2019-07-29 20:37:36 +08:00
KubeSphere CI Bot
1fcc994d1b Merge pull request #602 from hlwanghl/docs/typo
Update code-of-conduct.md
2019-07-29 20:34:36 +08:00
Zhengyi Lai
5e259947b1 Update OWNERS
Signed-off-by: Zhengyi Lai <zheng1@yunify.com>
2019-07-29 20:11:17 +08:00
Xuetao Song
9b6d6fb1e9 Merge pull request #610 from magicsong/prow
📄 add owner
2019-07-29 17:35:45 +08:00
magicsong
4d07f26060 📄 add owner 2019-07-29 17:22:33 +08:00
runzexia
5153aa3cf2 add contrubuting guide
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-29 14:19:16 +08:00
runzexia
d5ea34c92b enable gomod in Dockerfile & fix docker build bash
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-29 11:30:43 +08:00
Hongliang Wang
960b44a580 Update code-of-conduct.md
Signed-off-by: Hongliang Wang <hongliangwang@yunify.com>
2019-07-29 08:38:32 +08:00
magicsong
cda4f4f05a 🚒 add error message in controller 2019-07-26 13:27:49 +08:00
周鹏飞@yunify
5a836d9d89 remove installation gif, adjust picture position in README.md
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-26 13:20:22 +08:00
runzexia
55d846aeca Merge pull request #597 from magicsong/ctl
remove unnecessary dependency
2019-07-23 14:18:49 +08:00
magicsong
f4f2f391df remove unneccessary depency 2019-07-22 22:24:59 +08:00
zryfish
a61f9a52b8 Update go.mod 2019-07-20 00:32:24 +08:00
zryfish
8e74c0b439 Update go.mod 2019-07-20 00:32:24 +08:00
magicsong
c6ad0ebc3e use vgo 2019-07-20 00:32:24 +08:00
rayzhou2017
45243c987d Merge pull request #576 from FeynmanZhou/docs1
add service mesh, tracing, grayscale release screenshots, add 2.0.2 r…
2019-07-13 08:26:28 +08:00
周鹏飞@yunify
8a8eff29ec add service mesh, tracing, grayscale release screenshots, add 2.0.2 release icon
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-13 00:31:42 +08:00
rayzhou2017
1e9647bf1f Merge pull request #575 from FeynmanZhou/docs-2.0.2
fix mistaken release note link, update roadmap image to 2.0.2
2019-07-10 17:43:05 +08:00
周鹏飞@yunify
a973705710 replace the old roadmap image
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-10 17:03:54 +08:00
周鹏飞@yunify
302068b8e5 fix mistaken release note link, update roadmap image to 2.0.2
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-10 16:57:44 +08:00
rayzhou2017
f088f71371 Merge pull request #574 from FeynmanZhou/docs-2.0.2
update README to 2.0.2, refine development guide, add screenshots
2019-07-10 15:32:07 +08:00
周鹏飞@yunify
54a9962869 update README to 2.0.2, refine development guide, add screenshots
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-10 11:42:34 +08:00
rayzhou2017
576c891e5d Merge pull request #573 from wansir/api-docs
docs: update api docs
2019-07-07 10:19:22 +08:00
zryfish
4c4af06cba Update am.go 2019-07-06 23:13:13 +08:00
hongming
d2452c97e8 fix: recreate kubectl pod
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-06 23:13:13 +08:00
hongming
41a009cfda docs: update api docs
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-06 22:19:02 +08:00
runzexia
a5a46517bc Merge pull request #571 from soulseen/fix/api_typo
fix devops api typo
2019-07-06 17:13:03 +08:00
soulseen
ca1a498105 fix devops api typo
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-07-06 17:03:41 +08:00
hongming
6c7f4519cb fix: token expiration time
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-05 22:32:41 +08:00
rayzhou2017
738920a3fa Merge pull request #568 from huanggze/master
update logging api docs
2019-07-05 21:37:22 +08:00
rayzhou2017
bda4337831 Merge pull request #567 from FeynmanZhou/api-docs1
refine components API and drain node API docs
2019-07-05 21:33:16 +08:00
huanggze
5a2b314c46 update logging api docs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-07-05 21:27:16 +08:00
周鹏飞@yunify
36b35c3906 refine monitoring metrics API docs and IAM api docs
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-05 20:34:10 +08:00
rayzhou2017
220f13e2fd Merge pull request #566 from wansir/update-api-docs
docs: update api docs
2019-07-05 20:28:57 +08:00
rayzhou2017
08e801a573 Update applications.go 2019-07-05 20:17:44 +08:00
hongming
e0d5a84f5e docs: update api docs
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-05 19:17:57 +08:00
Zhuxiaoyang
71da84674d Merge pull request #565 from runzexia/update-devops-api-docs
update devops api docs
2019-07-05 15:41:45 +08:00
runzexia
4659d80d4a update devops api docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-05 15:16:40 +08:00
rayzhou2017
dd0e8b2621 Merge pull request #564 from FeynmanZhou/api-docs
refine deveops API docs, fix typo
2019-07-05 12:23:17 +08:00
周鹏飞@yunify
76483a5906 refine deveops API docs, fix typo
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-05 11:57:10 +08:00
huanggze
78f9e1b74d wrap error messages
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-07-05 11:34:49 +08:00
hongming
d16aee1176 fix: recreate kubectl pod
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-05 11:34:35 +08:00
Jeff
56a916e59f update servicemesh api doc 2019-07-05 11:03:15 +08:00
runzexia
513e98f882 Merge pull request #557 from soulseen/fix/checkpipeline
fix checkpipeline
2019-07-04 20:53:03 +08:00
soulseen
dde017c4ea fix checkpipeline
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-07-04 20:43:35 +08:00
hongming
234a7b6d64 Merge pull request #556 from huanggze/tenant-apis
update tenant api docs
2019-07-04 16:13:37 +08:00
huanggze
d30dba899d update tenant apis
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-07-04 14:07:09 +08:00
Jeff
7477eebd0e update router doc 2019-07-04 12:04:56 +08:00
rayzhou2017
10d14a26ec Merge pull request #552 from wansir/fix-api
update job rerun api
2019-07-03 17:24:48 +08:00
rayzhou2017
b95956e1ed Update register.go 2019-07-03 17:09:37 +08:00
rayzhou2017
e062d11fef Update register.go 2019-07-03 17:08:31 +08:00
hongming
f2ba29fe14 update job rerun api
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-03 15:03:15 +08:00
Zhuxiaoyang
d789b9bb74 Merge pull request #551 from runzexia/add-devops-api-tags
add devops api tags
2019-07-03 14:51:42 +08:00
runzexia
cd9f784045 fix repeat
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-03 14:43:34 +08:00
runzexia
c5f9c6bf18 add devops api tag
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-03 12:53:40 +08:00
hongming
340bcef0f7 Merge pull request #549 from rayzhou2017/tenant-api-docs
Update tenant API docs
2019-07-03 10:39:55 +08:00
rayzhou2017
12ada45bd3 Merge pull request #550 from wansir/update-api-version
update api version
2019-07-03 10:36:07 +08:00
hongming
3f9ea22043 update api version
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-03 10:06:41 +08:00
Ray Zhou
08af0870ae Update tenant API docs 2019-07-02 21:36:42 +08:00
rayzhou2017
660d15caa6 Merge pull request #548 from huanggze/api-doc-2
update api docs
2019-07-02 20:38:37 +08:00
huanggze
c692f082b6 update api docs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-07-02 20:25:13 +08:00
Guangzhe Huang
dee71fbd58 Merge pull request #547 from rayzhou2017/monitoring-api-docs
Update monitoring API docs
2019-07-02 19:12:08 +08:00
Ray Zhou
ee6c2efb3b Update monitoring API docs 2019-07-02 19:01:39 +08:00
hongming
08f7b8b961 Merge pull request #546 from rayzhou2017/resource-api-docs
Update resource API docs
2019-07-02 16:54:37 +08:00
rayzhou2017
2dfc1b4c7d Merge pull request #545 from huanggze/api-doc-fix
refine api docs
2019-07-02 16:49:12 +08:00
Ray Zhou
8d15ef08b9 Update resource API docs 2019-07-02 16:43:34 +08:00
huanggze
2530dbaf4e refine api docs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-07-02 16:26:32 +08:00
hongming
97195547b2 Merge pull request #544 from rayzhou2017/iam-api-docs
Update IAM API docs
2019-07-02 15:46:53 +08:00
Ray Zhou
afc0172bc3 Update IAM API docs 2019-07-02 15:35:26 +08:00
rayzhou2017
2afabbde29 Merge pull request #543 from rayzhou2017/devops-api-docs
Update DevOps API docs
2019-07-02 15:26:26 +08:00
Ray Zhou
44a249512f Update DevOps API docs 2019-07-02 14:37:45 +08:00
Zhuxiaoyang
1b7c570fcf Merge pull request #542 from rayzhou2017/devops-api-docs
Update devops API docs
2019-07-02 10:01:01 +08:00
Benjamin Huo
58762d9be9 Merge pull request #533 from huanggze/monitor-fix-2
refine monitoring apis
2019-07-02 00:15:51 +08:00
runzexia
178ea52229 update param name 2019-07-01 22:29:31 +08:00
Ray Zhou
64d880e636 Update devops API docs 2019-07-01 22:19:45 +08:00
rayzhou2017
058d97c18f Merge pull request #540 from runzexia/devop-api-docs
add missing devops api body
2019-07-01 20:59:37 +08:00
runzexia
1dded6bf59 fix devops api
Signed-off-by: runzexia <runzexia@yunify.com>
2019-07-01 20:41:49 +08:00
runzexia
f7d972f799 Merge pull request #538 from rayzhou2017/devops-api-docs
Update devops api docs
2019-07-01 20:39:39 +08:00
Ray Zhou
755a5cd093 Update devops api docs 2019-07-01 20:32:04 +08:00
hongming
2a3e97b709 fix: kubeconfig server host
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-01 20:08:22 +08:00
huanggze
be488ec67e api: update tags & reference links
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-07-01 18:58:02 +08:00
pengfei
4778a8a7d2 refine the introduction and fix syntax errors 2019-07-01 13:54:36 +08:00
周鹏飞@yunify
6375a691c9 fix syntax errors, refine the introduction
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-01 13:54:36 +08:00
周鹏飞@yunify
13744d0a19 refine introduction for REAMD.md
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-07-01 13:54:36 +08:00
hongming
fc376bd3ec fix: duplicate email
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-01 13:54:03 +08:00
hongming
d37d67d82b refactor component api
Signed-off-by: hongming <talonwan@yunify.com>
2019-07-01 13:53:26 +08:00
Jeff
e72b880b18 update nginx ingress controller 2019-06-30 21:28:28 +08:00
huanggze
a8d30ce766 refine api docs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-30 19:55:21 +08:00
huanggze
fa3d09b880 fix PromQL construction
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-30 19:53:42 +08:00
huanggze
7b81d24e13 remove buggy if statements
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-30 19:46:50 +08:00
huanggze
cbec574fa3 declare type FormatedLevelMetric explicitly
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-30 19:39:50 +08:00
Zhuxiaoyang
d57bcb5c29 Merge pull request #530 from kubesphere/revert-529-master
Revert "update devops api doc"
2019-06-29 22:36:43 +08:00
runzexia
945299b317 Revert "update devops api doc" 2019-06-29 22:21:39 +08:00
runzexia
c5652983bd Merge pull request #529 from soulseen/master
update devops api doc
2019-06-29 22:17:03 +08:00
soulseen
015cbfacf1 update devops api doc
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-29 21:13:27 +08:00
Zhuxiaoyang
6611cbebbd Merge pull request #526 from runzexia/update-devops-api-docs
update devops api docs
2019-06-29 19:58:10 +08:00
rayzhou2017
9fccdc457a Merge pull request #527 from FeynmanZhou/master
add installation gif demo and refine README.md, add development guide
2019-06-29 14:27:26 +08:00
周鹏飞@yunify
dc0b285bb4 refine development guide
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-06-29 13:21:21 +08:00
runzexia
4287799bc6 update devops api docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-29 13:17:57 +08:00
周鹏飞@yunify
2c024f077c add installation demo and refine README.md, add development guide
Signed-off-by: 周鹏飞@yunify <pengfeizhou@yunify.com>
2019-06-29 12:25:21 +08:00
rayzhou2017
01f5fb5bc9 Merge pull request #523 from soulseen/master
update model description
2019-06-28 17:26:51 +08:00
soulseen
f14ff17b22 update model description
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-28 17:17:48 +08:00
rayzhou2017
2b80b99c29 Merge pull request #522 from huanggze/monitor-fix
monitor: remove absent from PromQL
2019-06-28 16:37:54 +08:00
huanggze
5f86fa8906 monitor: remove absent from PromQL
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-28 16:15:47 +08:00
rayzhou2017
3a225f12f0 Merge pull request #516 from wansir/api-docs
docs: update api docs
2019-06-28 16:01:00 +08:00
rayzhou2017
845d035c23 Merge branch 'master' into api-docs 2019-06-28 15:02:17 +08:00
rayzhou2017
11e5d51740 Merge pull request #515 from rayzhou2017/application-api-docs
Update application API docs
2019-06-28 14:35:00 +08:00
hongming
4b29fa4922 docs: update api docs
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-28 13:22:19 +08:00
rayzhou2017
e466edc70b Merge pull request #518 from soulseen/master
update devops api description
2019-06-28 13:06:09 +08:00
rayzhou2017
ed5fa6bd8c Merge pull request #517 from runzexia/update-devops-api-docs
update api docs & reformat code
2019-06-28 13:05:43 +08:00
soulseen
749807896d update devops api description
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-28 12:57:13 +08:00
runzexia
129a7cf03a update api docs & reformat code
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-28 12:51:26 +08:00
Ray Zhou
cc5a632d9e Update application API docs 2019-06-28 11:25:33 +08:00
rayzhou2017
a336bae8ec Merge pull request #510 from rayzhou2017/api-docs
Update components API doc.
2019-06-28 10:53:00 +08:00
runzexia
fdf5279f2f Merge pull request #512 from kubesphere/update-devops-api-docs
update devops api docs
2019-06-28 10:31:27 +08:00
runzexia
576fe2acda Merge branch 'master' into update-devops-api-docs 2019-06-28 10:25:02 +08:00
runzexia
8d8600c37e Merge pull request #514 from rayzhou2017/devops-api-docs
Update DevOps API docs
2019-06-28 10:24:38 +08:00
Ray Zhou
e15857b544 Update DevOps API docs 2019-06-27 22:36:11 +08:00
runzexia
70599087dc update devops api docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-27 22:27:41 +08:00
Zhuxiaoyang
7f9917acfd Merge pull request #511 from runzexia/update-devops-api-docs
update api docs
2019-06-27 20:13:39 +08:00
runzexia
eded35c46d no message
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-27 20:00:38 +08:00
runzexia
7f2be1b61e update api docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-27 19:36:33 +08:00
Ray Zhou
0d07e3ca68 Update components API doc. 2019-06-27 18:53:36 +08:00
rayzhou2017
b91c6b66d4 Merge pull request #509 from rayzhou2017/api-docs
Update IM api docs
2019-06-27 16:54:23 +08:00
rayzhou2017
f01692a383 Merge branch 'master' into api-docs 2019-06-27 16:45:22 +08:00
Ray Zhou
37dca3a7a3 Update IM api docs 2019-06-27 16:32:53 +08:00
Guangzhe Huang
ca001504ec Merge pull request #498 from huanggze/fix-logging-response-wrapper 2019-06-27 16:19:15 +08:00
huanggze
87bdbfaaf2 apis: unify http response format
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-27 15:57:27 +08:00
huanggze
5910ef4554 api doc: update logging return descriptions
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-27 15:57:26 +08:00
Benjamin Huo
f15ad7d166 Merge pull request #504 from huanggze/monitor-null-values-2
fix: fill empty metrics data with zeros
2019-06-27 14:25:40 +08:00
Benjamin Huo
3da777ceb0 Merge branch 'master' into monitor-null-values-2 2019-06-27 14:14:03 +08:00
runzexia
bd2d25317c Merge pull request #506 from soulseen/master
update devops api description
2019-06-27 13:34:34 +08:00
soulseen
5a5ddaf5e5 update devops api description
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-27 13:13:35 +08:00
huanggze
adf225d0b3 fix: fill empty metrics data with zeros
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-26 18:03:10 +08:00
runzexia
07304c77c4 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-23 13:32:01 +08:00
runzexia
972ee07c40 fix comment
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-23 13:32:01 +08:00
runzexia
4c2bd4819c fix ci
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-23 13:32:01 +08:00
runzexia
ae8ee99da3 update api docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-23 13:32:01 +08:00
Zhuxiaoyang
aec4146c17 Merge pull request #455 from runzexia/uuid-utils
get all ipv4 to auto init
2019-06-23 10:42:07 +08:00
Zhuxiaoyang
08c92e9594 Merge branch 'master' into uuid-utils 2019-06-23 10:32:43 +08:00
rayzhou2017
0c9c9c8d00 Merge pull request #495 from huanggze/api-fix2
api: update descriptions and change path for monitoring apis
2019-06-22 22:04:59 +08:00
huanggze
a8cb551483 api: update descriptions and change path for monitoring apis
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-22 18:58:47 +08:00
Guangzhe Huang
0669ded49d Merge pull request #494 from huanggze/api-fix
api docs: refine logging api description
2019-06-22 14:19:13 +08:00
rayzhou2017
9ef85df6eb Merge branch 'master' into api-fix 2019-06-22 14:01:02 +08:00
runzexia
eede6fd5b1 Merge branch 'master' into uuid-utils 2019-06-22 12:50:41 +08:00
Benjamin Huo
909a01e653 Merge pull request #493 from huanggze/monitoring-fix
fix: filter out loopback devices when calculating disk space metrics
2019-06-22 12:50:39 +08:00
huanggze
580c1c3568 api docs: refine logging api description
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-22 12:48:21 +08:00
Benjamin Huo
825d1644bb Merge branch 'master' into monitoring-fix 2019-06-22 12:44:20 +08:00
runzexia
cd96ec0c21 Merge pull request #491 from soulseen/master
update devops api doc & remove not used api
2019-06-22 09:21:42 +08:00
Zhuxiaoyang
d519a9bbab Merge branch 'master' into master 2019-06-21 22:20:55 +08:00
soulseen
39e8de7de5 update devops api doc & remove not used api
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-21 22:07:27 +08:00
huanggze
08e432cb7f fix: filter out loopback devices when calculating disk space metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-21 21:03:17 +08:00
hongming
7981b3bf39 Merge pull request #492 from wansir/master
fix: duplicate root path
2019-06-21 17:14:07 +08:00
hongming
bade7af87e fix: duplicate root path
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-21 15:22:33 +08:00
rayzhou2017
916469dc99 Merge pull request #489 from huanggze/api-fix
update api doc
2019-06-21 12:11:55 +08:00
rayzhou2017
05a3953877 Merge branch 'master' into api-fix 2019-06-21 11:48:35 +08:00
hongming
24d13e44f7 update api docs (#490)
* update api docs

Signed-off-by: hongming <talonwan@yunify.com>

* fix: kube-apiserver host in kubeconfig

Signed-off-by: hongming <talonwan@yunify.com>
2019-06-21 11:47:29 +08:00
Guangzhe Huang
9c549647f9 Merge branch 'master' into api-fix 2019-06-21 11:37:05 +08:00
不羁
72875c7885 fix: get application details failed (#481)
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-21 11:34:05 +08:00
huanggze
ed0b211c2b fix: update metrics for node disk usage and capacity
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-21 11:34:05 +08:00
Benjamin Huo
be61ed065b Merge pull request #485 from huanggze/monitoring-fix
fix: update metrics for node disk usage and capacity
2019-06-21 09:40:07 +08:00
Benjamin Huo
c329a221bf Merge branch 'master' into monitoring-fix 2019-06-21 09:15:50 +08:00
huanggze
f92e309343 api doc: remove apis for fluent bit filter plugins
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-20 22:12:21 +08:00
huanggze
8d01fb68ab api doc: change the path parameter from workload_kind to kind
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-20 21:44:32 +08:00
不羁
4283814a68 fix: get application details failed (#481)
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-20 16:23:24 +08:00
runzexia
785e922b85 Merge branch 'master' into uuid-utils 2019-06-20 16:06:02 +08:00
runzexia
836c011eeb Merge pull request #484 from soulseen/master
update devops api doc
2019-06-19 21:18:17 +08:00
soulseen
fbc5a9db03 update devops api doc
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-19 21:10:01 +08:00
Zhuxiaoyang
1f125bddf3 Merge pull request #483 from runzexia/fix-update-devops-project-name 2019-06-19 21:03:27 +08:00
runzexia
3dbca4efd4 Merge branch 'master' into uuid-utils 2019-06-19 20:47:59 +08:00
runzexia
b8ceaad836 fix typo set
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-19 20:47:11 +08:00
huanggze
48a025b257 fix: update metrics for node disk usage and capacity
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-19 20:17:13 +08:00
huanggze
2442c94ec6 api: change HTTP method of fluentbit output updating from POST to PUT
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-19 12:23:37 +08:00
Ray Zhou
63addcbed9 Refine monitoring API docs 2019-06-19 12:18:34 +08:00
Ray Zhou
5f052b18ff Refine logging API docs 2019-06-19 12:18:34 +08:00
Ray Zhou
a711ac9a75 Fix grammer error of IAM API docs 2019-06-19 12:18:34 +08:00
runzexia
d5c749583e Merge branch 'master' into uuid-utils 2019-06-18 23:04:35 +08:00
Guangzhe Huang
370c3848c7 Merge pull request #482 from huanggze/api-tag
api: add tags to monitoring and logging apis for classififcation
2019-06-17 20:55:36 +08:00
huanggze
fb068f2416 api: add tags to monitoring and logging apis for classififcation
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-17 18:12:27 +08:00
runzexia
366c5f1628 Merge pull request #478 from runzexia/fix-devops-api-get-pipelines-404
fix-devops-api-get-pipelines-404
2019-06-12 11:23:49 +08:00
runzexia
758e271672 fix-devops-api-get-pipelines-404
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-11 16:05:13 +08:00
hongming
08877f950b update api docs
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-10 16:33:47 +08:00
runzexia
e86b2a4dcc fix devops api import error
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-10 14:15:10 +08:00
huanggze
3e2693739d doc: fix swagger import errors caused by duplicate operationId and non-allowed data type values
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-10 14:14:25 +08:00
zryfish
736582be23 Merge pull request #468 from runzexia/devops-docs
devops api doc update
2019-06-10 11:13:43 +08:00
runzexia
35100c8385 Merge branch 'master' into devops-docs
Signed-off-by: runzexia <runzexia@yunify.com>

# Conflicts:
#	pkg/apis/tenant/v1alpha2/register.go
2019-06-10 10:34:49 +08:00
Jeff
2878ff052f update servicemesh api doc
Signed-off-by: Jeff <jeffzhang@yunify.com>
2019-06-10 10:30:17 +08:00
runzexia
a4d25f15dd update api docs 2019-06-10 10:26:18 +08:00
huanggze
2861865c09 doc: add monitoring and logging api doc
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-10 10:21:58 +08:00
hongming
468ef322d1 update api doc
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-10 10:07:43 +08:00
runzexia
a9237a5c72 update docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-06 17:59:17 +08:00
runzexia
d5aa90bbdd Merge branch 'PR-469' into devops-docs 2019-06-06 11:33:37 +08:00
soulseen
8fe88f23b7 update devops api doc
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-05 21:55:59 +08:00
soulseen
24ec90376c add description
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-05 17:21:58 +08:00
runzexia
1b3e80519d update docs
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-05 15:47:38 +08:00
runzexia
fd530f4c1e tmp commit
Signed-off-by: runzexia <runzexia@yunify.com>
2019-06-05 14:09:39 +08:00
runzexia
dd87197de3 Merge pull request #451 from soulseen/master
filter jenkins header
2019-06-04 17:55:07 +08:00
runzexia
c5f787b38f Merge branch 'master' into master 2019-06-04 17:38:42 +08:00
hongming
22dca0ad55 fix: enable clusterrolebinding controller
Signed-off-by: hongming <talonwan@yunify.com>
2019-06-04 16:58:03 +08:00
huanggze
6f941dce91 fix: update log statistics response, remove sorting by time
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-06-04 16:57:50 +08:00
soulseen
2f02aa55cc format log
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-04 16:34:41 +08:00
soulseen
7e1774eb06 fix url format
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-06-04 11:05:08 +08:00
runzexia
fff5b93a67 get all ipv4 & auto init
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-29 13:57:25 +08:00
soulseen
01b79df455 add log err
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-27 17:25:49 +08:00
soulseen
8979d3a67d filter jenkins header
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-27 14:51:11 +08:00
rayzhou2017
96e32cc003 Update README.md 2019-05-19 11:10:52 +08:00
rayzhou2017
9fc8586dab Merge pull request #441 from FeynmanZhou/master
update README to 2.0.0
2019-05-19 11:08:14 +08:00
pengfeizhou
4f8c8ccff0 fix typo, update feature description
Signed-off-by: pengfeizhou <pengfeizhou@yunify.com>
2019-05-19 09:46:09 +08:00
pengfeizhou
a74905f5c4 fix typo, update feature description
Signed-off-by: pengfeizhou <pengfeizhou@yunify.com>
2019-05-19 09:44:20 +08:00
rayzhou2017
55bb8da037 Update README.md 2019-05-19 09:41:19 +08:00
rayzhou2017
851193622d Update README.md 2019-05-19 09:40:37 +08:00
pengfeizhou
a1ccb3f205 Merge branch 'master' of https://github.com/kubesphere/kubesphere 2019-05-19 02:13:55 +08:00
pengfeizhou
63a07566c2 update README to 2.0.0
Signed-off-by: pengfeizhou <pengfeizhou@yunify.com>
2019-05-19 02:10:01 +08:00
Jeff
ebcf5bed6f update application vendor 2019-05-18 21:49:04 +08:00
pengfeizhou
ef83b540b5 update README for 2.0.0
Signed-off-by: pengfeizhou <pengfeizhou@yunify.com>
2019-05-18 19:15:28 +08:00
Jeff
1a1bcfebd0 fix router nil bug 2019-05-18 09:52:03 +08:00
hongming
ed224612bc fix: runtime release
Signed-off-by: hongming <talonwan@yunify.com>
2019-05-17 15:24:59 +08:00
Benjamin Huo
e9402059c2 Merge pull request #436 from huanggze/monitoring
fix: update disk metrics
2019-05-17 11:22:03 +08:00
Benjamin Huo
85a6b69f94 Merge branch 'master' into monitoring 2019-05-17 11:15:44 +08:00
Zhuxiaoyang
29aa146669 Merge pull request #438 from kubesphere/devops-req-url
fix devops req url
2019-05-17 11:07:36 +08:00
runzexia
3c2aa60a72 fix devops req url
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-17 10:59:18 +08:00
Jeff
d310e635f2 fix service policy deletion bug 2019-05-17 09:35:05 +08:00
huanggze
41b85a7534 fix: update disk metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-16 23:29:52 +08:00
runzexia
9c5dcf747f Merge pull request #435 from soulseen/master
fix cron check
2019-05-16 22:35:51 +08:00
soulseen
998e622b52 Merge branch 'master' of github.com:kubesphere/kubesphere 2019-05-16 21:34:06 +08:00
soulseen
8e50b9e31f fix cron check
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-16 21:32:05 +08:00
soulseen
35be922922 fix jenkins header
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-16 21:32:05 +08:00
Zhuxiaoyang
257844ea7c Merge pull request #433 from soulseen/master
fix jenkins header & url
2019-05-16 19:23:39 +08:00
Zhuxiaoyang
a321eeef19 Merge branch 'master' into master 2019-05-16 19:10:45 +08:00
soulseen
157c1c37a7 fix jenkins header
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-16 18:34:15 +08:00
Jeff
40ebeccfaa delete orphan resources where service deleted 2019-05-16 15:36:53 +08:00
Jeff
273aa0102a remove useless logs 2019-05-16 01:19:02 +08:00
huanggze
502a7d33e6 logging: remove redundant code
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-16 01:06:23 +08:00
soulseen
2b427b8e68 update jenkins api doc
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-15 20:56:06 +08:00
runzexia
dae04e2ad3 update
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-15 20:56:06 +08:00
runzexia
2259924e17 delete all devops project when delete ws
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-15 20:56:06 +08:00
Jeff
d9cce21f05 add quota left to namespace quota 2019-05-15 20:56:06 +08:00
soulseen
6b3b0aa4f1 update jenkins log
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-15 20:52:33 +08:00
runzexia
3c72d08815 update
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-15 17:44:47 +08:00
runzexia
3d11687d2a delete all devops project when delete ws
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-15 17:44:47 +08:00
Jeff
5c32225613 add quota left to namespace quota 2019-05-15 16:46:45 +08:00
soulseen
322ba8be06 update jenkins log
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-15 16:10:06 +08:00
hongming
4ae7d3256e fix: application api
Signed-off-by: hongming <talonwan@yunify.com>
2019-05-14 23:50:12 +08:00
huanggze
4c111533b1 fix: log statitiscs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-14 23:40:55 +08:00
Zhuxiaoyang
1acfe509c2 Merge pull request #425 from soulseen/master
update api description
2019-05-14 20:30:30 +08:00
Zhuxiaoyang
0838ceb585 Merge branch 'master' into master 2019-05-14 19:33:23 +08:00
soulseen
5b0fd59788 Merge branch 'master' of github.com:soulseen/kubesphere 2019-05-14 19:30:57 +08:00
soulseen
c8de1d6487 fix typo
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-14 19:30:10 +08:00
huanggze
6784865207 logging: record errors
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-14 19:29:11 +08:00
runzexia
0f290a1d41 Merge branch 'master' into master 2019-05-14 17:28:52 +08:00
runzexia
ca99e0a08a Merge pull request #422 from runzexia/fix-sonar-status-NPE
fix sonarStatus api NEP, return `[]` if could not get last run
2019-05-14 17:25:42 +08:00
soulseen
ff45220411 update api description
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-14 17:16:10 +08:00
runzexia
5e4b50061c fix ci 2019-05-14 17:15:46 +08:00
runzexia
11a9d166ee fix
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-14 16:31:42 +08:00
runzexia
a6f46bc84a fix sonarStatus api NEP, return [] if could not get last run
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-14 16:29:54 +08:00
Benjamin Huo
86c7cf6185 Merge pull request #410 from huanggze/monitoring
fix: filter out old namespace data from workspace cpu and memory metrics
2019-05-14 11:29:29 +08:00
Benjamin Huo
f84e58b0db Merge branch 'master' into monitoring 2019-05-14 11:22:56 +08:00
Jeff
48cf27095b update workload 2019-05-13 23:24:12 +08:00
Jeff
049b3dd11d update router workload 2019-05-13 23:24:12 +08:00
Jeff
89f54da60a fix router update bug 2019-05-13 14:02:32 +08:00
Jeff
5462f51e65 fix application bug 2019-05-13 11:28:20 +08:00
runzexia
996d6fe4c5 update 2019-05-13 11:27:10 +08:00
runzexia
1270e36c2d ks iam recover
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-13 11:27:10 +08:00
runzexia
8edcd0c355 wrap panic
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-13 11:27:10 +08:00
zryfish
bfb0a83364 Merge branch 'master' into monitoring 2019-05-12 18:11:04 +08:00
Jeff
6dd8622136 fix update router bug 2019-05-12 17:59:25 +08:00
Jeff
692de802b3 change application source location 2019-05-12 17:40:34 +08:00
huanggze
d4864d2c0e Merge remote-tracking branch 'remotes/kubesphere/master' into monitoring 2019-05-11 20:42:33 +08:00
huanggze
d9cc03408c fix: filter out old namespace data from workspace cpu and memory metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-11 20:42:01 +08:00
Benjamin Huo
ea5009d571 Merge pull request #409 from huanggze/monitoring
update: change an argument
2019-05-11 17:34:53 +08:00
huanggze
e575a217f3 update: change an argument
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-11 16:12:33 +08:00
runzexia
3af400e71b Merge pull request #408 from soulseen/master
fix init jenkins
2019-05-11 14:02:53 +08:00
Zhuxiaoyang
a2c5b27703 Merge branch 'master' into master 2019-05-11 13:38:56 +08:00
Benjamin Huo
c33f39d531 Merge pull request #404 from huanggze/monitoring
fix: ensure namespces to be filterred correctly in workspace metrics
2019-05-11 13:36:25 +08:00
Benjamin Huo
8381bba4ca Merge branch 'master' into monitoring 2019-05-11 13:26:10 +08:00
soulseen
ecfcad9ea8 fix init jenkins
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-11 13:01:45 +08:00
Zhuxiaoyang
642d52a45f Merge pull request #406 from runzexia/jenkins-client-check
jenkins client NPE check
2019-05-11 12:51:22 +08:00
runzexia
c8c66c1d6c fix typo
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-11 12:18:40 +08:00
runzexia
21b663de50 jenkins client NPE check
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-11 12:09:03 +08:00
huanggze
1a9b17f98d fix: ensure old namespce data to be filterred out correctly in metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-11 12:00:15 +08:00
huanggze
3d36b254b0 fix: ensure namespces to be filterred correctly in workspace metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-10 23:37:28 +08:00
Zhuxiaoyang
9cec5489ba Merge pull request #402 from soulseen/master
remove repeat api
2019-05-10 13:44:42 +08:00
soulseen
a472c311dc fix typo & remove repeat api
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-10 13:36:22 +08:00
runzexia
7bf044a766 Merge pull request #401 from runzexia/refactor-credential-create
refactor credential api
2019-05-10 10:18:50 +08:00
runzexia
002b54a1f8 Merge branch 'master' into refactor-credential-create 2019-05-09 18:14:32 +08:00
runzexia
c9abd0052b do not need get id
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-09 18:13:54 +08:00
runzexia
eeef8b217e Merge branch 'refactor-credential-create' of https://github.com/runzexia/kubesphere into refactor-credential-create
Signed-off-by: runzexia <runzexia@yunify.com>

# Conflicts:
#	pkg/models/devops/project_credential_handler.go
2019-05-09 18:11:10 +08:00
不羁
d27c5b96cf add missing api group (#400)
Signed-off-by: hongming <talonwan@yunify.com>
2019-05-09 18:10:20 +08:00
runzexia
96f2641e8b do not find description
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-09 18:09:48 +08:00
runzexia
b9d7ff5e4c Merge branch 'master' into refactor-credential-create 2019-05-09 17:54:19 +08:00
runzexia
8bf5ae0910 refactor credential api
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-09 17:53:33 +08:00
runzexia
00e3ed1a15 Merge pull request #399 from runzexia/recover-panic
recover from panic
2019-05-09 17:51:56 +08:00
runzexia
4f8f8d6f3c refactor credential api 2019-05-09 17:51:21 +08:00
runzexia
578af2ae19 recover from panic
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-09 15:16:54 +08:00
runzexia
be0ae7780a Merge pull request #396 from soulseen/master
update post run pipeline
2019-05-09 10:23:05 +08:00
Zhuxiaoyang
52b63f5ebc update post run pipeline
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-08 21:01:45 +08:00
不羁
3aba5b15f4 Merge pull request #397 from kubesphere/add-jenkins-init-return
return nil if init failed
2019-05-08 17:31:06 +08:00
runzexia
70977f0d8a return nil
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-08 17:00:49 +08:00
不羁
e94ef57df5 Merge pull request #394 from huanggze/logging-dev
fix: log query starttime must be greater than the namespace creation time
2019-05-08 15:53:50 +08:00
Guangzhe Huang
260ffe90f9 Merge branch 'master' into logging-dev 2019-05-08 15:42:30 +08:00
不羁
60d0c81bb3 Merge pull request #392 from wansir/master
add pvc filter
2019-05-08 15:36:36 +08:00
Guangzhe Huang
750c3f1eb5 Merge branch 'master' into logging-dev 2019-05-08 15:34:15 +08:00
huanggze
5523725421 fix: log query starttime must be greater than the namespace creation time
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-08 15:30:56 +08:00
不羁
0e50a93e26 Merge branch 'master' into master 2019-05-08 15:14:59 +08:00
runzexia
8ba8078a62 Merge pull request #391 from runzexia/reinit-jenkins-
retry init if jenkinsClient == nil
2019-05-08 14:59:03 +08:00
runzexia
e0f84ab5b4 Merge branch 'master' into reinit-jenkins- 2019-05-08 14:53:11 +08:00
runzexia
e40dd11521 Merge pull request #390 from soulseen/master
add jenkins branch api
2019-05-08 14:52:53 +08:00
Zhuxiaoyang
a5cd5bee82 add jenkins branch api
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-08 14:44:53 +08:00
runzexia
b7889e4172 jenkins init
Signed-off-by: runzexia <runzexia@yunify.com>
2019-05-08 14:41:55 +08:00
不羁
dbb02bd081 Merge branch 'master' into master 2019-05-08 13:22:23 +08:00
hongming
0083a48e01 add pvc filter
Signed-off-by: hongming <talonwan@yunify.com>
2019-05-08 13:21:05 +08:00
huanggze
ac96101142 fix: namespace resourcequota of pod count
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-07 23:17:19 +08:00
huanggze
0b55a064e8 add flag description of prometheus client
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-07 23:17:19 +08:00
runzexia
af5f50ffb7 Merge pull request #387 from soulseen/master
update post run url
2019-05-07 13:27:09 +08:00
Zhuxiaoyang
daac30bfae update post run url
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-07 11:37:42 +08:00
huanggze
85836e2e1a log: remove redudant wrapper
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-07 10:27:55 +08:00
hongming
e115feeb8a fix: duplicate namespace
Signed-off-by: hongming <talonwan@yunify.com>
2019-05-06 17:54:51 +08:00
soulseen
0a37bfd0a4 update const
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-06 17:46:23 +08:00
soulseen
9f24801eeb update jenkins pre-check
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-06 17:46:23 +08:00
soulseen
a57947fd45 add jenkins pre-check & fix jenkins flag
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-06 17:46:23 +08:00
Zhuxiaoyang
2857071bdd Dev (#9)
* add tag & add webhook api

Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-06 17:46:23 +08:00
Zhuxiaoyang
daab932e9f update jenkins api
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-05-06 17:46:23 +08:00
runzexia
b416aa27bb fmt code 2019-05-06 17:37:24 +08:00
runzexia
21c2e4920f delete user in devops 2019-05-06 17:37:24 +08:00
huanggze
7748ad8f3c update resource quota metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-06 17:36:02 +08:00
huanggze
1239ed23ac bug fix: workload monitoring
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-06 17:36:02 +08:00
hongming
8e2acfa7f6 add extra annotations
Signed-off-by: hongming <talonwan@yunify.com>
2019-05-05 23:02:21 +08:00
huanggze
3e8035dc2b update pod metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-05-05 09:11:05 +08:00
runzexia
3931912f8d fix typo 2019-04-30 00:55:36 +08:00
hongming
ed5e1c53e9 fix: workspace manage permission
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-30 00:54:45 +08:00
runzexia
8268c969ba request devops api with auth info 2019-04-29 12:26:39 +08:00
hongming
57f3eed28c fix: wrong file path
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-29 10:46:59 +08:00
huanggze
20a4525d58 refactor monitoring modules
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-28 21:08:27 +08:00
huanggze
5d8fd5c6ac round cpu usage metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-28 21:08:27 +08:00
huanggze
d8117e567c update etcd metrics
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-28 21:08:27 +08:00
hongming
ebd681770e hide internal user
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-28 17:52:21 +08:00
hongming
9a530c2cec add job controller
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-28 17:52:21 +08:00
hongming
ece9049836 automatically create kubeconfig
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-28 17:52:21 +08:00
hongming
da0ca36d1a fix: applications api
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-28 17:52:21 +08:00
runzexia
5babbe8b53 get devops components status 2019-04-28 17:50:07 +08:00
zryfish
0451f153f8 Merge pull request #362 from runzexia/devops2
add devops project & members & pipeline api
2019-04-28 13:53:27 +08:00
runzexia
1dedc95168 fix ci 2019-04-28 11:58:12 +08:00
runzexia
04fc601d0e omitempty 2019-04-28 11:49:52 +08:00
runzexia
b448a8ca95 Merge branch 'master' into devops2
# Conflicts:
#	pkg/apis/devops/v1alpha2/register.go
2019-04-28 11:23:54 +08:00
Zhuxiaoyang
8cae4e85aa update api path
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-04-28 11:19:52 +08:00
Zhuxiaoyang
1e87ad5998 Dev (#1)
* add api & rename alias

Signed-off-by: soulseen <sunzhu@yunify.com>
2019-04-28 11:19:52 +08:00
runzexia
6cd2c1a046 response ok 2019-04-27 21:27:59 +08:00
runzexia
7996f88b96 refmt 2019-04-27 13:41:28 +08:00
runzexia
e6fac5a574 update param's description 2019-04-27 13:32:55 +08:00
runzexia
086e8acd40 add header & add some comment && rollback role assign when db insert failed 2019-04-27 13:20:16 +08:00
runzexia
386e291212 dep ensure 2019-04-26 16:47:04 +08:00
runzexia
dedc1c8f8d Merge commit 'e26a7a0ca9cfcedbe771e854fce4a3df7563f886' into devops2 2019-04-26 16:41:40 +08:00
runzexia
2fc4160448 add credential api & fix api docs 2019-04-26 16:41:12 +08:00
runzexia
e26a7a0ca9 fix db update script 2019-04-26 16:38:43 +08:00
runzexia
1317843110 fix ci 2019-04-25 19:49:31 +08:00
runzexia
d42f886fe8 update api docs & fmt code 2019-04-25 19:46:42 +08:00
runzexia
a266d0e9f6 add pipeline apis 2019-04-25 19:37:37 +08:00
runzexia
976c68ad62 Merge branch 'master' into devops2 2019-04-25 19:35:52 +08:00
zryfish
51716dd078 Update docker_build.sh 2019-04-25 16:54:45 +08:00
Jeff
f7f333f92f update travis build 2019-04-25 16:42:37 +08:00
runzexia
1def6baf56 fix api 2019-04-25 16:28:48 +08:00
runzexia
6c928258c6 fix goimport
Signed-off-by: runzexia <runzexia@yunify.com>
2019-04-24 22:45:46 +08:00
runzexia
2ab1ab7b98 devops project api & devops members api
Signed-off-by: runzexia <runzexia@yunify.com>
2019-04-24 21:51:43 +08:00
zryfish
26c891642d Update .stale.yaml 2019-04-24 19:57:38 +08:00
runzexia
6830a185f8 log error
Signed-off-by: runzexia <runzexia@yunify.com>
2019-04-24 17:35:31 +08:00
runzexia
955d20fec0 update
Signed-off-by: runzexia <runzexia@yunify.com>
2019-04-24 17:35:31 +08:00
runzexia
68809bcc38 mv get roles
Signed-off-by: runzexia <runzexia@yunify.com>
2019-04-24 17:35:31 +08:00
runzexia
5a6f51d775 devops tenant api
Signed-off-by: runzexia <runzexia@yunify.com>
2019-04-24 17:35:31 +08:00
soulseen
78f2dab18c add jenkins api & log
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-04-24 15:18:21 +08:00
sunzhu
e64e8bb93b add jenkins api
Signed-off-by: soulseen <sunzhu@yunify.com>
2019-04-24 15:18:21 +08:00
Jeff
addf11c38b fix nodeport router 2019-04-23 19:52:53 +08:00
hongming
dd963c0be4 fix: ks-account abnormal restart
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-23 19:30:30 +08:00
Jeff
5c8a087a9c add sidecar to router 2019-04-15 01:32:32 +08:00
hongming
8e862cafb2 fix terminal api
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-15 01:32:19 +08:00
huanggze
eea2bb3724 enhance log querying in a multi-tenant environment
Signed-off-by: huanggze <“loganhuang@yunify.com”>
2019-04-14 19:36:44 +08:00
huanggze
800800acd1 add a new etcd metric
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-14 16:18:41 +08:00
hongming
5c4efd53f6 refactor tenant api
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-11 15:56:27 +08:00
Jeff
7163373064 change servicemesh prometheus to kubesphere monitoring prometheus 2019-04-11 15:25:36 +08:00
huanggze
3a3e49547b add component monitoring
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-11 15:17:41 +08:00
huanggze
17e09190be monitoring, logging model minor updates
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-09 14:42:43 +08:00
Jeff
aea3000629 add response for tracing 2019-04-09 11:02:40 +08:00
Jeff
4fb5388176 add service traces 2019-04-09 01:12:03 +08:00
zryfish
6dd03b3df6 Merge pull request #322 from wansir/master
Refine tenant api
2019-04-08 23:42:44 +08:00
hongming
304764ac9b update dependency
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-08 23:33:45 +08:00
hongming
c4c021b5a2 Resolved merge conflict
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-08 22:54:51 +08:00
Jeff
d01cdf3b3c add node ip to router 2019-04-08 22:20:08 +08:00
Jeff
e8c1d6fbb4 add node ip to router 2019-04-08 22:20:08 +08:00
huanggze
9a9664f06c monitoring model bug fix
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-04-08 21:27:00 +08:00
hongming
93ad572e19 refine tenant api
Signed-off-by: hongming <talonwan@yunify.com>
2019-04-08 20:48:31 +08:00
Jeff
5d8a907cae update kiali constraint source 2019-04-08 00:08:58 +08:00
runzexia
247fc38b51 update verify func 2019-04-07 23:50:43 +08:00
runzexia
70882b5a57 add verify git read func 2019-04-07 23:50:43 +08:00
Jeff
828de74cc5 fix bug 2019-04-07 23:49:04 +08:00
runzexia
f01b4bd4a4 update s2i version 2019-04-03 17:40:54 +08:00
calvinyv
675284668f Merge pull request #323 from FeynmanZhou/master
fix typo for REAMDE
2019-04-02 14:41:39 +08:00
pengfei
214ddb5a72 Merge branch 'master' into master 2019-04-01 15:07:10 +08:00
pengfeizhou
c2a43a4249 fix typo for REAMDE
Signed-off-by: pengfeizhou <pengfeizhou@yunify.com>
2019-04-01 15:05:32 +08:00
calvinyv
eabd3dc04d Merge pull request #321 from FeynmanZhou/master
update README, add release note, quick start, intro, installation guides
2019-04-01 14:51:20 +08:00
hongming
744bd053e3 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	cmd/ks-apiserver/app/server.go
2019-04-01 02:48:10 +08:00
pengfeizhou
5149d3821f update README, add release note, quick start, intro, installation guides
Signed-off-by: pengfeizhou <pengfeizhou@yunify.com>
2019-04-01 00:42:57 +08:00
zryfish
01082acedb Merge pull request #315 from huanggze/master
use configmap to store log output configs
2019-03-31 13:50:51 +08:00
zryfish
1a56abed77 Merge branch 'master' into master 2019-03-30 19:01:03 +08:00
Jeff
5392478077 fix vs bug 2019-03-29 15:17:17 +08:00
Jeff
2e1dc6a7b5 service policy
refactor virtualservice controller
2019-03-28 22:09:50 +08:00
runzexia
43217d16a3 add status query 2019-03-28 21:09:34 +08:00
huanggze
250933de73 Merge branch 'master' into dev 2019-03-27 17:38:00 +08:00
huanggze
74325fa81b use configmap to store log output configs
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-03-27 15:33:07 +08:00
Jeff
f1899fe044 fix health api bug
fix kubebuilder version
2019-03-27 01:28:25 +08:00
Jeff
8191264bf1 fix event format error
xx
2019-03-26 14:30:35 +08:00
Jeff
8edf1ca7b8 fix image tag 2019-03-26 01:54:30 +08:00
Jeff
5b3b86a5d3 use api token 2019-03-26 01:54:30 +08:00
Jeff
867129cdce add controllers
change kiali mux to go-restful

add knative

add health api
2019-03-26 01:10:35 +08:00
runzexia
4b73883096 update s2i to v0.0.7 2019-03-25 20:05:33 +08:00
Jeff
aa4d07c80a add controllers
change kiali mux to go-restful

add knative
2019-03-25 01:38:32 +08:00
Jeff
4c7c837771 refactor project structure 2019-03-23 00:53:13 +08:00
Jeff
232b4efaad refactor project 2019-03-23 00:51:03 +08:00
runzexia
12c4cd9f30 add s2i support 2019-03-22 13:58:53 +08:00
zryfish
9566549f08 Merge pull request #304 from huanggze/ks-2.0
add feature: logging and monitoring
2019-03-22 12:58:19 +08:00
huanggze
70bd255ccf resolve conflicts
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-03-21 17:55:55 +08:00
huanggze
b48803a735 add feature: logging and monitoring
Signed-off-by: huanggze <loganhuang@yunify.com>
2019-03-21 16:45:48 +08:00
hongming
1b06d5a9ee Merge remote-tracking branch 'upstream/master' 2019-03-20 13:11:05 +08:00
zryfish
523a0f01aa refactor iam api
Signed-off-by: hongming <talonwan@yunify.com>
2019-03-20 13:09:33 +08:00
zryfish
c0ebf8c4a8 Merge pull request #301 from zryfish/point_p8s_to_istio_system
use istio p8s
2019-03-20 12:41:54 +08:00
Jeff
00b958887c use istio p8s 2019-03-20 12:17:47 +08:00
zryfish
9548e2516c Merge pull request #300 from zryfish/fix_kiali_config
fix kiali config
2019-03-20 11:43:53 +08:00
Jeff
8a060fa87f fix kiali config 2019-03-20 11:15:00 +08:00
zryfish
8e7a1b65bc Merge pull request #293 from zryfish/servicemesh
add service mesh
2019-03-17 17:46:00 +08:00
jeff
4ac20ffc2b add service mesh controller
add service mesh metrics

remove unused circle yaml

fix travis misconfiguration

fix travis misconfiguration

fix travis misconfiguration
2019-03-17 17:28:52 +08:00
zryfish
858facd4b2 Merge pull request #291 from wansir/advanced-2.0-dev
upgrade go version to 1.12
2019-03-15 19:48:26 +08:00
zryfish
2a2451ac05 Merge branch 'master' into advanced-2.0-dev 2019-03-15 19:40:18 +08:00
hongming
4144404b0b use go 1.12
Signed-off-by: hongming <talonwan@yunify.com>
2019-03-15 18:24:00 +08:00
zryfish
66ceb714d6 Merge pull request #288 from wansir/advanced-2.0-dev
add ks-iam and ks-apigateway
2019-03-11 23:43:16 +08:00
hongming
b59c244ca2 add ks-iam and ks-apigateway
Signed-off-by: hongming <talonwan@yunify.com>
2019-03-11 21:21:06 +08:00
jeff
f579e97f6b change travis.yaml 2019-03-07 19:39:01 +08:00
jeff
6b6c690f6d remove unused directory 2019-03-07 17:17:23 +08:00
jeff
47bf8820f4 Initial commit 2019-03-07 17:08:54 +08:00
zryfish
870fc29309 Merge pull request #238 from wansir/master
fix: data is cleared
2018-12-10 19:49:21 +08:00
hongming
e0dfc10010 fix: data is cleared
Signed-off-by: hongming <talonwan@yunify.com>
2018-12-10 18:50:30 +08:00
zryfish
492bf08de0 Merge pull request #237 from carmanzhang/monitor
Bug fix: cluster_pod_count metrics
2018-12-10 15:14:20 +08:00
Carman Zhang
86c7ca0362 Bug fix: cluster_pod_count metrics 2018-12-10 14:58:43 +08:00
zryfish
5d7d6755c0 Merge pull request #234 from carmanzhang/monitor
Bug fix: pod count metrics
2018-12-09 16:32:02 +08:00
Carman Zhang
e775421672 Bug fix: pod count metrics 2018-12-08 19:36:37 +08:00
zryfish
17727188f4 Merge pull request #232 from zryfish/fix_service_type_bug
fix service type
2018-12-06 23:29:45 +08:00
zryfish
e06c241555 Merge pull request #230 from wansir/master
fix: data error
2018-12-06 23:24:25 +08:00
zryfish
75ba702e6e Merge pull request #231 from carmanzhang/monitor
changed default prometheus query timeout to 10 seconds
2018-12-06 23:20:34 +08:00
jeff
3a4c4c10c2 fix service type
Signed-off-by: jeff <jeffzhang@yunify.com>
2018-12-06 23:19:37 +08:00
Carman Zhang
bf022a19fe changed default prometheus query timeout to 10 seconds 2018-12-06 21:54:37 +08:00
hongming
7b1cbabb4f fix: data error
Signed-off-by: hongming <talonwan@yunify.com>
2018-12-06 21:35:48 +08:00
zryfish
e40833c2a7 Merge pull request #229 from wansir/master
fix: miscount
2018-12-06 00:28:44 +08:00
hongming
1055111b5e fix: miscount
Signed-off-by: hongming <talonwan@yunify.com>
2018-12-05 21:30:44 +08:00
zryfish
341795f406 Merge pull request #228 from carmanzhang/monitor
changed nic related rules
2018-12-05 21:24:48 +08:00
Carman Zhang
3e13811ab6 changed nic related rules 2018-12-05 21:03:35 +08:00
zryfish
cde7415b7a Merge pull request #226 from wansir/master
support workspace member search
2018-12-05 19:36:37 +08:00
hongming
f25ae2d571 support workspace member search
Signed-off-by: hongming <talonwan@yunify.com>
2018-12-05 17:44:03 +08:00
zryfish
742ab06e75 Merge pull request #227 from zryfish/add_node_status
refactor component status
2018-12-04 11:25:50 +08:00
jeff
9122ed7b25 refactor component status
Signed-off-by: jeff <jeffzhang@yunify.com>
2018-12-04 01:21:38 +08:00
zryfish
9e7db66780 Merge pull request #225 from carmanzhang/monitor
refactor monitoring apis for high performance testing
2018-12-03 15:35:46 +08:00
Carman Zhang
c503efaa3b refactor monitoring apis for high performance testing 2018-12-03 15:15:53 +08:00
zryfish
fa30f68102 Merge pull request #222 from wansir/master
load data from lister
2018-12-03 14:02:16 +08:00
hongming
1df7185112 load data from lister
Signed-off-by: hongming <talonwan@yunify.com>
2018-12-03 12:01:47 +08:00
zryfish
3041d90e22 Merge pull request #224 from zryfish/refactor_component_status
refactor component status
2018-12-03 02:17:42 +08:00
jeff
cc5e0ec301 refactor component status
Signed-off-by: jeff <jeffzhang@yunify.com>
2018-12-03 02:07:05 +08:00
zryfish
030e4aaed2 Merge pull request #223 from zryfish/refactor_component_status
refactor component status
2018-12-03 01:42:53 +08:00
jeff
7f688317f3 Signed-off-by: jeff <jeffzhang@yunify.com>
refactor component status

Signed-off-by: jeff <jeffzhang@yunify.com>
2018-12-03 01:34:50 +08:00
zryfish
744516d944 Merge pull request #221 from zryfish/refactor_component_status
remove kubesphere-monitoring-system
2018-12-02 19:57:32 +08:00
jeff
b78bff7138 remove kubesphere-monitoring-system 2018-12-02 19:56:50 +08:00
zryfish
0dd78409e8 Merge pull request #220 from zryfish/refactor_resource_interface
refactor resource interface
2018-11-30 19:36:12 +08:00
jeff
f54dd2cf61 refactor resource interface
Signed-off-by: jeff <jeffzhang@yunify.com>
2018-11-30 19:03:14 +08:00
zryfish
92427183ff Merge pull request #219 from wansir/master
fix: sync devops rolebindings
2018-11-30 17:39:40 +08:00
hongming
b90a84b99b fix: sync devops rolebindings
Signed-off-by: hongming <talonwan@yunify.com>
2018-11-30 17:28:30 +08:00
zryfish
8857212695 Merge pull request #217 from zryfish/add_app_description
add app description
2018-11-29 15:31:28 +08:00
jeff
6ba1e0a468 add app description 2018-11-29 15:05:41 +08:00
zryfish
bb8a793e26 Merge pull request #216 from zryfish/pods_paging
query workload pods in a graceful way, which supports paging
2018-11-29 14:59:38 +08:00
jeff
58a58a2984 query workload pods in a graceful way, which supports paging 2018-11-29 14:46:09 +08:00
zryfish
dadea738a9 Merge pull request #214 from carmanzhang/monitor
change workload metrics, add node-pod-container metrics api
2018-11-28 21:10:00 +08:00
Carman Zhang
cb1c03961b change workload metrics, add node-pod-container metrics api 2018-11-28 20:28:17 +08:00
zryfish
0a3dfcc536 Merge pull request #215 from zryfish/add_monitoring_to_system_components
add kubesphere-monitoring-system to system monitoring component
2018-11-28 14:39:55 +08:00
jeff
106c2aad0b add kubesphere-monitoring-system to system monitoring component 2018-11-28 14:31:45 +08:00
zryfish
347bfef1b5 Merge pull request #213 from carmanzhang/monitor
support node-pod/namespace-workload sorting and paging
2018-11-23 16:16:16 +08:00
zryfish
56f7dabb67 Merge pull request #211 from wansir/master
fix bug: rolebinding cannot delete
2018-11-23 14:37:54 +08:00
hongming
a908757cfb fix bug: rolebinding cannot delete 2018-11-23 14:03:15 +08:00
Carman Zhang
9a6880bc9c support node-pod/namespace-workload sorting and paging 2018-11-23 11:41:56 +08:00
zryfish
c7a1011e0c Merge pull request #212 from zryfish/node_roles
fix node role bug
2018-11-22 22:51:57 +08:00
jeff
c07611cbed fix node role bug 2018-11-22 21:39:47 +08:00
zryfish
ba92091561 Merge pull request #209 from wansir/master
fix bug:db init failed,clusterrolebinding sync error
2018-11-21 14:27:10 +08:00
zryfish
f79ae414bc Merge pull request #210 from carmanzhang/monitor
changed promqls and fixed several monitoring bugs
2018-11-21 14:25:33 +08:00
hongming
49d40f48f7 fix bug:db init failed,clusterrolebinding sync error 2018-11-21 10:01:01 +08:00
Carman Zhang
982c4ac30e changed promqls and fixed several monitoring bugs 2018-11-20 19:14:21 +08:00
zryfish
7f780bd3fb Merge pull request #206 from wansir/master
refactor workspace api
2018-11-16 20:59:17 +08:00
zryfish
6156b6dac7 Merge pull request #208 from carmanzhang/monitor
fixed monitor bugs
2018-11-16 20:58:41 +08:00
hongming
bce25036a2 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	pkg/models/workspaces/workspaces.go
2018-11-16 18:37:56 +08:00
jeff
e9038e94d7 refactor workspace api 2018-11-16 18:35:21 +08:00
Carman Zhang
df31cab343 add load average metrics, change prometheus apiserver svc 2018-11-16 17:41:17 +08:00
Carman Zhang
16eac8ce3c fixed rank 2018-11-16 13:51:09 +08:00
Carman Zhang
c5d9da99a1 fixed component and cluster metrics 2018-11-16 11:04:42 +08:00
zryfish
066f36b81f Merge pull request #204 from carmanzhang/monitor
fixed deployment-pods metrics
2018-11-15 11:24:56 +08:00
Carman Zhang
beb7efdac0 fixed deployment-pods metrics 2018-11-14 16:04:24 +08:00
zryfish
fbf053306b Merge pull request #201 from carmanzhang/monitor
Refactor monitor module
2018-11-11 17:58:53 +08:00
Carman Zhang
f9057a0705 reformat monitoring apis 2018-11-11 13:13:39 +08:00
zryfish
02124c2a12 Merge pull request #202 from zryfish/fix_component_status_bug
component status
2018-11-08 11:38:31 +08:00
jeff
3a38a83dd2 component status 2018-11-08 11:29:42 +08:00
zryfish
1b15e5e774 Merge pull request #200 from zryfish/component_status
component status
2018-11-07 17:13:19 +08:00
jeff
a38bb3784d component status 2018-11-06 17:31:40 +08:00
不羁
c5b11300a1 Merge pull request #199 from wansir/master
refactor workspace api
2018-11-06 10:49:57 +08:00
hongming
e8a4a8685c Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	pkg/apis/v1alpha/monitoring/monitor_handler.go
#	pkg/models/metrics/metricscollector.go
#	pkg/models/metrics/metricsconst.go
2018-11-01 12:26:14 +08:00
hongming
70065d430d refactor workspace api 2018-11-01 12:20:26 +08:00
zryfish
313ebea12c Merge pull request #194 from wansir/master
add workspace api
2018-10-29 11:28:48 +08:00
richardxz
a9cd961236 Merge pull request #197 from richardxz/master
add "Terminating" status in pvc's lifecycle
2018-10-26 18:36:45 +08:00
richardxz
03a37e70a1 add "Terminating" status in pvc's lifecycle 2018-10-25 03:00:56 -04:00
richardxz
920d09042d Merge pull request #196 from richardxz/master
ignore the role/clusterrole which don't have "creator" annotation
2018-10-24 15:29:38 +08:00
richardxz
33dd9fb2dd ignore the role/clusterrole which don't have "creator" annotation 2018-10-24 00:03:43 -04:00
zryfish
59d26c2809 Merge pull request #195 from richardxz/master
fix err in service type's judgment
2018-10-23 14:10:51 +08:00
richardxz
75d8787f64 fix err in service type 2018-10-23 00:20:22 -04:00
hongming
a8d5f552a0 add workspace api 2018-10-22 17:18:20 +08:00
zryfish
5fb551e8d4 Merge pull request #192 from carmanzhang/master
add cluster/workspace level multiple metrics in dashboard
2018-10-17 16:39:59 +08:00
Carman Zhang
c65ecddbef add cluster level multiple metrics in dashboard 2018-10-17 16:31:43 +08:00
richardxz
d368a791e0 Merge pull request #193 from richardxz/master
update job's "rerun" function
2018-10-17 10:21:29 +08:00
richardxz
b982f133aa update job's "rerun" function 2018-10-16 21:55:21 -04:00
zryfish
5a51bb68af Merge pull request #190 from wansir/master
add openpitrix proxy token
2018-10-12 09:58:22 +08:00
richardxz
5a71eaf75c Merge pull request #191 from richardxz/master
avoid incorrect result when list resource with search conditions
2018-10-11 14:58:40 +08:00
richardxz
0b6480328d avoid incorrect result when list resource with search conditions 2018-10-11 02:34:44 -04:00
richardxz
f7f59c0264 Merge pull request #189 from richardxz/master
support image search
2018-10-11 14:31:42 +08:00
hongming
85b3da3dcd add openpitrix proxy token 2018-10-09 19:55:45 +08:00
richardxz
48966ce7d9 support image search 2018-10-09 04:32:34 -04:00
richardxz
adc77fcd58 Merge pull request #188 from richardxz/master
support configmaps and secrets' paging
2018-10-09 14:51:08 +08:00
richardxz
6658177967 support configmaps and secrets' paging 2018-10-07 22:44:21 -04:00
Wiley Wang
8ada5d2b45 Merge pull request #186 from wnxn/master
update Gopkg.lock
2018-09-28 11:03:24 +08:00
wileywang
4dc68a2e41 update Gopkg.lock 2018-09-28 10:29:57 +08:00
carmanzhang
b360c0abd6 Merge pull request #183 from carmanzhang/master
add monitoring apis
2018-09-27 11:53:16 -05:00
Carman Zhang
53dd54b163 add monitoring apis 2018-09-27 17:50:26 +08:00
richardxz
df21cabbdd Merge pull request #180 from richardxz/master
add hpa api
2018-09-27 11:06:58 +08:00
richardxz
f1c1c9e6e4 add hpa api 2018-09-26 22:22:38 -04:00
Wiley Wang
639b94385e Merge pull request #175 from wnxn/master
get k8s version through k8s client at master branch
2018-09-26 13:46:10 +08:00
Wiley Wang
5afe55092b Merge branch 'ceph-secret' 2018-09-25 17:50:38 +08:00
wileywang
2fb4d3a3b8 get k8s version through k8sclient 2018-09-25 17:38:47 +08:00
richardxz
e82ad2d73c Merge pull request #172 from richardxz/master
ensure db connections are successfully closed when process exit
2018-09-25 16:14:27 +08:00
richardxz
dc93d00aed ensure db connections are successfully closed when process exit 2018-09-20 05:40:50 -04:00
richardxz
e1716f254d Merge pull request #171 from richardxz/master
support return storageclass's provisioner
2018-09-20 09:05:26 +08:00
Wiley Wang
975a1555ad Merge pull request #170 from wnxn/master
Add controller to create Ceph secret in master branch
2018-09-19 19:13:37 +08:00
wileywang
13b4b0eb04 Add controller to create Ceph secret 2018-09-19 16:26:41 +08:00
richardxz
1389332205 support return storageclass's provisioner 2018-09-19 14:00:35 +08:00
richardxz
1c27a36e06 Merge pull request #168 from richardxz/master
modify db client's  initialization function
2018-09-19 11:26:53 +08:00
richardxz
7db56c8b5f modify db client's initialization function 2018-09-17 15:16:58 +08:00
richardxz
5b52580b37 Merge pull request #167 from richardxz/master
register new apis
2018-09-17 15:08:50 +08:00
richardxz
cef1732595 register new apis 2018-09-17 13:57:43 +08:00
richardxz
48300b2bf6 Merge pull request #166 from richardxz/master
support get workload's revision by revision number
2018-09-17 13:57:03 +08:00
richardxz
6ad87a296f support get workload's revision by revision number 2018-09-17 13:44:45 +08:00
zryfish
4a3067c2ab Merge pull request #165 from wnxn/master
update dependency at master branch
2018-09-17 13:37:20 +08:00
richardxz
5eee8b3d53 Merge pull request #163 from richardxz/master
support job re-run
2018-09-17 13:02:25 +08:00
Wiley Wang
db08431ac1 update dependency 2018-09-17 03:20:28 +00:00
richardxz
18f8f13ffb support job re-run 2018-09-17 11:20:05 +08:00
zryfish
2e6bf0f566 Merge pull request #160 from richardxz/master
refactor the code of resource list function
2018-09-17 11:02:02 +08:00
richardxz
4bd18b072c refactor the code of resource list function 2018-09-17 10:24:01 +08:00
Calvin Yu
f7e607a14c refactor docs 2018-08-08 15:29:28 +08:00
richardxz
0d24ea922d Merge pull request #153 from richardxz/master
add desciption field in application response
2018-08-06 11:11:58 +08:00
richardxz
d24ee41c23 add desciption field in application response 2018-08-01 22:18:29 -04:00
richardxz
1987900430 Merge pull request #151 from richardxz/master
add resync function and support to view deployed applications
2018-07-31 13:42:30 +08:00
richardxz
49e297d663 add resync function and support to view deployed applications 2018-07-31 01:14:33 -04:00
richardxz
c76c82a635 Merge pull request #146 from richardxz/master
add swagger ui
2018-07-31 10:41:37 +08:00
zryfish
b21b33046b Merge pull request #150 from zryfish/fix_router_config_bug
fix router config bug
2018-07-23 11:06:30 +08:00
jeff
4265c3e9f1 fix router config bug 2018-07-23 10:50:09 +08:00
zryfish
6cac9b7f6d Merge pull request #148 from littlebeer2100/express
alter components function to filter non system component service
2018-07-11 19:30:57 +08:00
yanmingfan
f60610e39d alter components function to filter uncomponents svc 2018-07-11 18:21:21 +08:00
richardxz
f8a057abc8 add swagger ui 2018-07-11 17:28:19 +08:00
8601 changed files with 1773298 additions and 314310 deletions

View File

@@ -1 +1,2 @@
tmp/
.github

4
.gitattributes vendored
View File

@@ -1,2 +1,6 @@
pkg/cmd/api/spec/api.swagger.json linguist-generated=true
pkg/cmd/api/spec/static.go linguist-generated=true
pkg/client/* linguist-generated=true
config/crds/* linguist-generated=true
config/rbac/* linguist-generated=true
zz_generated.deepcopy.go linguist-generated=true

41
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,41 @@
---
name: Bug report
about: Create a report to help us improve
---
## English only!
**注意GitHub Issue 仅支持英文,中文 Issue 请在 [论坛](https://kubesphere.com.cn/forum/) 提交。**
**General remarks**
> Please delete this section including header before submitting
>
> This form is to report bugs. For general usage questions refer to our Slack channel
> [KubeSphere-users](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTdkNTc3OTdmNzdiODViZjViNTU5ZDY3M2I2MzY4MTI4OGZlOTJmMDg5ZTFiMDAwYzNlZDY5NjA0NzZlNDU5NmY)
**Describe the Bug**
A clear and concise description of what the bug is.
For UI issues please also add a screenshot that shows the issue.
**Versions Used**
KubeSphere:
Kubernetes: (If KubeSphere installer used, you can skip this)
**Environment**
How many nodes and their hardware configuration:
For example: CentOS 7.5 / 3 masters: 8cpu/8g; 3 nodes: 8cpu/16g
(and other info are welcomed to help us debugging)
**How 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.

View File

@@ -0,0 +1,23 @@
---
name: Installation Issue
about: Create an issue to help us improve installation
---
## English only!
**注意GitHub Issue 仅支持英文,中文 Issue 请在 [论坛](https://kubesphere.com.cn/forum/) 提交。**
**What's your question**
**Environment: OS & Hardware Information**
> Important: You must describe your environment clearly, e.g. VMware or Bare Metal, CentOS 7.5, 8 C / 16 G (If you install on Linux), Or Kubernetes v1.16 (If you install on K8s).
**Error logs or message (Attach logs or screenshot)**
**Installer Version**
> e.g. v2.1.0, v2.1.1

38
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,38 @@
**What type of PR is this?**
> Uncomment only one ` /kind <>` line, hit enter to put that in a new line, and remove leading whitespaces from that line:
>
> /kind api-change
> /kind bug
> /kind cleanup
> /kind design
> /kind documentation
> /kind failing-test
> /kind feature
> /kind flake
**What this PR does / why we need it**:
**Which issue(s) this PR fixes**:
<!--
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*
-->
Fixes #
**Special notes for reviewers**:
```
```
**Additional documentation, usage docs, etc.**:
<!--
This section can be blank if this pull request does not require a release note.
Please use the following format for linking documentation or pass the
section below:
- [KEP]: <link>
- [Usage]: <link>
- [Other doc]: <link>
-->
```docs
```

20
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 90
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 30
# Issues with these labels will never be considered stale
exemptLabels:
- frozen
- kind/feature-request
- kind/feature
- kind/security
- kind/design
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Any further update will
cause the issue/pull request to no longer be considered stale. Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue is being automatically closed due to inactivity.

66
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
name: Go
on:
push:
branches:
- 'master'
- 'release*'
tags:
- 'v*'
pull_request:
branches:
- 'master'
- 'release*'
jobs:
build:
name: Build
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Check pr is properly formatted
run: diff -u <(echo -n) <(gofmt -d ./pkg ./cmd ./tools ./test)
- name: Downloading go dependencies
run: go mod vendor
- name: Install kubebuilder
run: bash hack/install_kubebuilder.sh
- name: Build
run: make all
- name: Make OpenAPI Spec
run: make openapi
- name: Uploading code coverage
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.txt
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
- name: Get branch name
id: extract_branch
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- name: Build and push docker images
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
if: github.event_name == 'push'
run: bash hack/docker_build.sh ${{ steps.extract_branch.outputs.branch }}

12
.gitignore vendored
View File

@@ -4,6 +4,7 @@
*.dll
*.so
*.dylib
*.a
# Test binary, build with `go test -c`
*.test
@@ -19,7 +20,14 @@ bin/
# Vscode files
.vscode/
tmp/
# OSX trash
.DS_Store
api.json
*.coverprofile
cover.out
coverage.txt
kustomize/network/etcd
apiserver.local.config
tmp/

0
.gitmodules vendored Normal file
View File

View File

@@ -1,32 +0,0 @@
sudo: required
services:
- docker
language: go
go:
- 1.10
- tip
go_import_path: kubesphere.io/kubesphere
before_install:
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get -y install docker-ce
- dep ensure -v
before_script:
- docker --version
script:
- make fmt-check && make build
deploy:
provider: script
script: bash install/scripts/docker_push
on:
branch: master

13
AUTHORS
View File

@@ -1,13 +0,0 @@
# This is the official list of KubeSphere authors for copyright purposes.
# This file is distinct from the CONTRIBUTORS files.
# See the latter for an explanation.
# Names should be added to this file as one of
# Organization's name
# Individual's name <submission email address>
# Individual's name <submission email address> <email2> <emailN>
# See CONTRIBUTORS for the meaning of multiple email addresses.
# Please keep the list sorted.
Yunify Inc.

3
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,3 @@
# Guide
This [document](https://github.com/kubesphere/community) walks you through how to get started contributing KubeSphere.

View File

@@ -1,20 +0,0 @@
# This is the official list of people who can contribute
# (and typically have contributed) code to the KubeSphere repository.
# The AUTHORS file lists the copyright holders; this file
# lists people. For example, Yunify employees are listed here
# but not in AUTHORS, because Yunify holds the copyright.
#
# When adding J Random Contributor's name to this file,
# either J's name or J's organization's name should be
# added to the AUTHORS file.
# Names should be added to this file like so:
# Individual's name <submission email address>
# Individual's name <submission email address> <email2> <emailN>
#
# An entry with multiple email addresses specifies that the
# first address should be used in the submit logs.
# Please keep the list sorted.
Ray@qingcloud <ray@yunify.com>

View File

@@ -1,17 +0,0 @@
# Copyright 2018 The KubeSphere Authors. All rights reserved.
# Use of this source code is governed by a Apache license
# that can be found in the LICENSE file.
FROM kubesphere/kubesphere-builder as builder
WORKDIR /go/src/kubesphere.io/kubesphere/
COPY . .
RUN go generate kubesphere.io/kubesphere/pkg/version && \
go install kubesphere.io/kubesphere/cmd/...
FROM alpine:3.6
RUN apk add --update ca-certificates && update-ca-certificates
COPY --from=builder /go/bin/* /usr/local/bin/
CMD ["sh"]

View File

@@ -1,10 +0,0 @@
FROM alpine:3.6
RUN apk add --update ca-certificates \
&& update-ca-certificates \
&& mkdir -p /etc/kubesphere/ingress-controller
COPY ./bin/* /usr/local/bin/
COPY ./install/ingress-controller /etc/kubesphere/ingress-controller
CMD ["sh"]

596
Gopkg.lock generated
View File

@@ -1,596 +0,0 @@
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[[projects]]
name = "github.com/Microsoft/go-winio"
packages = ["."]
revision = "7da180ee92d8bd8bb8c37fc560e673e6557c392f"
version = "v0.4.7"
[[projects]]
name = "github.com/Sirupsen/logrus"
packages = ["."]
revision = "c155da19408a8799da419ed3eeb0cb5db0ad5dbc"
version = "v1.0.5"
[[projects]]
name = "github.com/antonholmquist/jason"
packages = ["."]
revision = "c23cef7eaa75a6a5b8810120e167bd590d8fd2ab"
version = "v1.0.0"
[[projects]]
name = "github.com/coreos/etcd"
packages = [
"auth/authpb",
"clientv3",
"etcdserver/api/v3rpc/rpctypes",
"etcdserver/etcdserverpb",
"mvcc/mvccpb",
"pkg/tlsutil",
"pkg/transport",
"pkg/types"
]
revision = "33245c6b5b49130ca99280408fadfab01aac0e48"
version = "v3.3.8"
[[projects]]
name = "github.com/davecgh/go-spew"
packages = ["spew"]
revision = "346938d642f2ec3594ed81d874461961cd0faa76"
version = "v1.1.0"
[[projects]]
branch = "master"
name = "github.com/docker/distribution"
packages = [
"digestset",
"reference"
]
revision = "749f6afb4572201e3c37325d0ffedb6f32be8950"
[[projects]]
name = "github.com/docker/docker"
packages = [
"api",
"api/types",
"api/types/blkiodev",
"api/types/container",
"api/types/events",
"api/types/filters",
"api/types/image",
"api/types/mount",
"api/types/network",
"api/types/registry",
"api/types/strslice",
"api/types/swarm",
"api/types/time",
"api/types/versions",
"api/types/volume",
"client",
"pkg/ioutils",
"pkg/longpath",
"pkg/system",
"pkg/tlsconfig"
]
revision = "90d35abf7b3535c1c319c872900fbd76374e521c"
version = "v17.05.0-ce-rc3"
[[projects]]
branch = "master"
name = "github.com/docker/go-connections"
packages = [
"nat",
"sockets",
"tlsconfig"
]
revision = "7395e3f8aa162843a74ed6d48e79627d9792ac55"
[[projects]]
name = "github.com/docker/go-units"
packages = ["."]
revision = "47565b4f722fb6ceae66b95f853feed578a4a51c"
version = "v0.3.3"
[[projects]]
branch = "master"
name = "github.com/docker/libtrust"
packages = ["."]
revision = "aabc10ec26b754e797f9028f4589c5b7bd90dc20"
[[projects]]
branch = "master"
name = "github.com/docker/spdystream"
packages = [
".",
"spdy"
]
revision = "bc6354cbbc295e925e4c611ffe90c1f287ee54db"
[[projects]]
name = "github.com/emicklei/go-restful"
packages = [
".",
"log"
]
revision = "3658237ded108b4134956c1b3050349d93e7b895"
version = "v2.7.1"
[[projects]]
name = "github.com/ghodss/yaml"
packages = ["."]
revision = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7"
version = "v1.0.0"
[[projects]]
name = "github.com/go-sql-driver/mysql"
packages = ["."]
revision = "d523deb1b23d913de5bdada721a6071e71283618"
version = "v1.4.0"
[[projects]]
name = "github.com/gogo/protobuf"
packages = [
"gogoproto",
"proto",
"protoc-gen-gogo/descriptor",
"sortkeys"
]
revision = "1adfc126b41513cc696b209667c8656ea7aac67c"
version = "v1.0.0"
[[projects]]
branch = "master"
name = "github.com/golang/glog"
packages = ["."]
revision = "23def4e6c14b4da8ac2ed8007337bc5eb5007998"
[[projects]]
name = "github.com/golang/protobuf"
packages = [
"proto",
"ptypes",
"ptypes/any",
"ptypes/duration",
"ptypes/timestamp"
]
revision = "b4deda0973fb4c70b50d226b1af49f3da59f5265"
version = "v1.1.0"
[[projects]]
branch = "master"
name = "github.com/google/gofuzz"
packages = ["."]
revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1"
[[projects]]
name = "github.com/googleapis/gnostic"
packages = [
"OpenAPIv2",
"compiler",
"extensions"
]
revision = "7c663266750e7d82587642f65e60bc4083f1f84e"
version = "v0.2.0"
[[projects]]
name = "github.com/gorilla/websocket"
packages = ["."]
revision = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b"
version = "v1.2.0"
[[projects]]
branch = "master"
name = "github.com/hashicorp/golang-lru"
packages = [
".",
"simplelru"
]
revision = "0fb14efe8c47ae851c0034ed7a448854d3d34cf3"
[[projects]]
branch = "master"
name = "github.com/howeyc/gopass"
packages = ["."]
revision = "bf9dde6d0d2c004a008c27aaee91170c786f6db8"
[[projects]]
name = "github.com/imdario/mergo"
packages = ["."]
revision = "9316a62528ac99aaecb4e47eadd6dc8aa6533d58"
version = "v0.3.5"
[[projects]]
name = "github.com/jinzhu/gorm"
packages = ["."]
revision = "6ed508ec6a4ecb3531899a69cbc746ccf65a4166"
version = "v1.9.1"
[[projects]]
branch = "master"
name = "github.com/jinzhu/inflection"
packages = ["."]
revision = "04140366298a54a039076d798123ffa108fff46c"
[[projects]]
name = "github.com/json-iterator/go"
packages = ["."]
revision = "ca39e5af3ece67bbcda3d0f4f56a8e24d9f2dad4"
version = "1.1.3"
[[projects]]
name = "github.com/modern-go/concurrent"
packages = ["."]
revision = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"
version = "1.0.3"
[[projects]]
name = "github.com/modern-go/reflect2"
packages = ["."]
revision = "1df9eeb2bb81f327b96228865c5687bc2194af3f"
version = "1.0.0"
[[projects]]
name = "github.com/opencontainers/go-digest"
packages = ["."]
revision = "279bed98673dd5bef374d3b6e4b09e2af76183bf"
version = "v1.0.0-rc1"
[[projects]]
name = "github.com/pkg/errors"
packages = ["."]
revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
version = "v0.8.0"
[[projects]]
name = "github.com/spf13/pflag"
packages = ["."]
revision = "583c0c0531f06d5278b7d917446061adc344b5cd"
version = "v1.0.1"
[[projects]]
branch = "master"
name = "golang.org/x/crypto"
packages = ["ssh/terminal"]
revision = "7f39a6fea4fe9364fb61e1def6a268a51b4f3a06"
[[projects]]
branch = "master"
name = "golang.org/x/net"
packages = [
"context",
"context/ctxhttp",
"http/httpguts",
"http2",
"http2/hpack",
"idna",
"internal/socks",
"internal/timeseries",
"proxy",
"trace"
]
revision = "db08ff08e8622530d9ed3a0e8ac279f6d4c02196"
[[projects]]
branch = "master"
name = "golang.org/x/sys"
packages = [
"unix",
"windows"
]
revision = "fc8bd948cf46f9c7af0f07d34151ce25fe90e477"
[[projects]]
name = "golang.org/x/text"
packages = [
"collate",
"collate/build",
"internal/colltab",
"internal/gen",
"internal/tag",
"internal/triegen",
"internal/ucd",
"language",
"secure/bidirule",
"transform",
"unicode/bidi",
"unicode/cldr",
"unicode/norm",
"unicode/rangetable"
]
revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"
version = "v0.3.0"
[[projects]]
branch = "master"
name = "golang.org/x/time"
packages = ["rate"]
revision = "fbb02b2291d28baffd63558aa44b4b56f178d650"
[[projects]]
name = "google.golang.org/appengine"
packages = ["cloudsql"]
revision = "b1f26356af11148e710935ed1ac8a7f5702c7612"
version = "v1.1.0"
[[projects]]
branch = "master"
name = "google.golang.org/genproto"
packages = ["googleapis/rpc/status"]
revision = "32ee49c4dd805befd833990acba36cb75042378c"
[[projects]]
name = "google.golang.org/grpc"
packages = [
".",
"balancer",
"balancer/base",
"balancer/roundrobin",
"codes",
"connectivity",
"credentials",
"encoding",
"encoding/proto",
"grpclog",
"health/grpc_health_v1",
"internal",
"internal/backoff",
"internal/channelz",
"internal/grpcrand",
"keepalive",
"metadata",
"naming",
"peer",
"resolver",
"resolver/dns",
"resolver/passthrough",
"stats",
"status",
"tap",
"transport"
]
revision = "168a6198bcb0ef175f7dacec0b8691fc141dc9b8"
version = "v1.13.0"
[[projects]]
name = "gopkg.in/igm/sockjs-go.v2"
packages = ["sockjs"]
revision = "d276e9ffe5cc5c271b81198cc77a2adf6c4482d2"
version = "v2.0.0"
[[projects]]
name = "gopkg.in/inf.v0"
packages = ["."]
revision = "d2d2541c53f18d2a059457998ce2876cc8e67cbf"
version = "v0.9.1"
[[projects]]
name = "gopkg.in/yaml.v2"
packages = ["."]
revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
version = "v2.2.1"
[[projects]]
name = "k8s.io/api"
packages = [
"admissionregistration/v1alpha1",
"admissionregistration/v1beta1",
"apps/v1",
"apps/v1beta1",
"apps/v1beta2",
"authentication/v1",
"authentication/v1beta1",
"authorization/v1",
"authorization/v1beta1",
"autoscaling/v1",
"autoscaling/v2beta1",
"batch/v1",
"batch/v1beta1",
"batch/v2alpha1",
"certificates/v1beta1",
"core/v1",
"events/v1beta1",
"extensions/v1beta1",
"networking/v1",
"policy/v1beta1",
"rbac/v1",
"rbac/v1alpha1",
"rbac/v1beta1",
"scheduling/v1alpha1",
"settings/v1alpha1",
"storage/v1",
"storage/v1alpha1",
"storage/v1beta1"
]
revision = "73d903622b7391f3312dcbac6483fed484e185f8"
version = "kubernetes-1.10.0"
[[projects]]
name = "k8s.io/apimachinery"
packages = [
"pkg/api/errors",
"pkg/api/meta",
"pkg/api/resource",
"pkg/apis/meta/internalversion",
"pkg/apis/meta/v1",
"pkg/apis/meta/v1/unstructured",
"pkg/apis/meta/v1beta1",
"pkg/conversion",
"pkg/conversion/queryparams",
"pkg/fields",
"pkg/labels",
"pkg/runtime",
"pkg/runtime/schema",
"pkg/runtime/serializer",
"pkg/runtime/serializer/json",
"pkg/runtime/serializer/protobuf",
"pkg/runtime/serializer/recognizer",
"pkg/runtime/serializer/streaming",
"pkg/runtime/serializer/versioning",
"pkg/selection",
"pkg/types",
"pkg/util/cache",
"pkg/util/clock",
"pkg/util/diff",
"pkg/util/errors",
"pkg/util/framer",
"pkg/util/httpstream",
"pkg/util/httpstream/spdy",
"pkg/util/intstr",
"pkg/util/json",
"pkg/util/net",
"pkg/util/rand",
"pkg/util/remotecommand",
"pkg/util/runtime",
"pkg/util/sets",
"pkg/util/validation",
"pkg/util/validation/field",
"pkg/util/wait",
"pkg/util/yaml",
"pkg/version",
"pkg/watch",
"third_party/forked/golang/netutil",
"third_party/forked/golang/reflect"
]
revision = "302974c03f7e50f16561ba237db776ab93594ef6"
version = "kubernetes-1.10.0"
[[projects]]
name = "k8s.io/client-go"
packages = [
"discovery",
"informers",
"informers/admissionregistration",
"informers/admissionregistration/v1alpha1",
"informers/admissionregistration/v1beta1",
"informers/apps",
"informers/apps/v1",
"informers/apps/v1beta1",
"informers/apps/v1beta2",
"informers/autoscaling",
"informers/autoscaling/v1",
"informers/autoscaling/v2beta1",
"informers/batch",
"informers/batch/v1",
"informers/batch/v1beta1",
"informers/batch/v2alpha1",
"informers/certificates",
"informers/certificates/v1beta1",
"informers/core",
"informers/core/v1",
"informers/events",
"informers/events/v1beta1",
"informers/extensions",
"informers/extensions/v1beta1",
"informers/internalinterfaces",
"informers/networking",
"informers/networking/v1",
"informers/policy",
"informers/policy/v1beta1",
"informers/rbac",
"informers/rbac/v1",
"informers/rbac/v1alpha1",
"informers/rbac/v1beta1",
"informers/scheduling",
"informers/scheduling/v1alpha1",
"informers/settings",
"informers/settings/v1alpha1",
"informers/storage",
"informers/storage/v1",
"informers/storage/v1alpha1",
"informers/storage/v1beta1",
"kubernetes",
"kubernetes/scheme",
"kubernetes/typed/admissionregistration/v1alpha1",
"kubernetes/typed/admissionregistration/v1beta1",
"kubernetes/typed/apps/v1",
"kubernetes/typed/apps/v1beta1",
"kubernetes/typed/apps/v1beta2",
"kubernetes/typed/authentication/v1",
"kubernetes/typed/authentication/v1beta1",
"kubernetes/typed/authorization/v1",
"kubernetes/typed/authorization/v1beta1",
"kubernetes/typed/autoscaling/v1",
"kubernetes/typed/autoscaling/v2beta1",
"kubernetes/typed/batch/v1",
"kubernetes/typed/batch/v1beta1",
"kubernetes/typed/batch/v2alpha1",
"kubernetes/typed/certificates/v1beta1",
"kubernetes/typed/core/v1",
"kubernetes/typed/events/v1beta1",
"kubernetes/typed/extensions/v1beta1",
"kubernetes/typed/networking/v1",
"kubernetes/typed/policy/v1beta1",
"kubernetes/typed/rbac/v1",
"kubernetes/typed/rbac/v1alpha1",
"kubernetes/typed/rbac/v1beta1",
"kubernetes/typed/scheduling/v1alpha1",
"kubernetes/typed/settings/v1alpha1",
"kubernetes/typed/storage/v1",
"kubernetes/typed/storage/v1alpha1",
"kubernetes/typed/storage/v1beta1",
"listers/admissionregistration/v1alpha1",
"listers/admissionregistration/v1beta1",
"listers/apps/v1",
"listers/apps/v1beta1",
"listers/apps/v1beta2",
"listers/autoscaling/v1",
"listers/autoscaling/v2beta1",
"listers/batch/v1",
"listers/batch/v1beta1",
"listers/batch/v2alpha1",
"listers/certificates/v1beta1",
"listers/core/v1",
"listers/events/v1beta1",
"listers/extensions/v1beta1",
"listers/networking/v1",
"listers/policy/v1beta1",
"listers/rbac/v1",
"listers/rbac/v1alpha1",
"listers/rbac/v1beta1",
"listers/scheduling/v1alpha1",
"listers/settings/v1alpha1",
"listers/storage/v1",
"listers/storage/v1alpha1",
"listers/storage/v1beta1",
"pkg/apis/clientauthentication",
"pkg/apis/clientauthentication/v1alpha1",
"pkg/version",
"plugin/pkg/client/auth/exec",
"rest",
"rest/watch",
"tools/auth",
"tools/cache",
"tools/clientcmd",
"tools/clientcmd/api",
"tools/clientcmd/api/latest",
"tools/clientcmd/api/v1",
"tools/metrics",
"tools/pager",
"tools/reference",
"tools/remotecommand",
"transport",
"transport/spdy",
"util/buffer",
"util/cert",
"util/exec",
"util/flowcontrol",
"util/homedir",
"util/integer",
"util/retry"
]
revision = "23781f4d6632d88e869066eaebb743857aa1ef9b"
version = "v7.0.0"
[[projects]]
name = "k8s.io/kubernetes"
packages = ["pkg/util/slice"]
revision = "5ca598b4ba5abb89bb773071ce452e33fb66339d"
version = "v1.10.4"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "afd0a3a0e96a5054e6b99afd53b78888125726fc89c62f121984cd73a6ca4fb3"
solver-name = "gps-cdcl"
solver-version = 1

View File

@@ -1,90 +0,0 @@
# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
#
# [prune]
# non-go = false
# go-tests = true
# unused-packages = true
[[constraint]]
name = "github.com/coreos/etcd"
version = "3.3.7"
[[constraint]]
name = "github.com/docker/docker"
version = "v17.05.0-ce"
[[constraint]]
name = "github.com/emicklei/go-restful"
version = "2.7.1"
[[constraint]]
branch = "master"
name = "github.com/golang/glog"
[[constraint]]
name = "github.com/spf13/pflag"
version = "1.0.1"
[[constraint]]
name = "gopkg.in/igm/sockjs-go.v2"
version = "2.0.0"
[[constraint]]
name = "gopkg.in/yaml.v2"
version = "2.2.1"
[[constraint]]
name = "k8s.io/api"
version = "kubernetes-1.10.0"
[[constraint]]
name = "k8s.io/apimachinery"
version = "kubernetes-1.10.0"
[[constraint]]
name = "k8s.io/client-go"
version = "7.0.0"
[[constraint]]
name = "k8s.io/kubernetes"
version = "1.10.4"
[prune]
go-tests = true
unused-packages = true
# To use reference package:
# vendor/github.com/docker/docker/client/container_commit.go:17: undefined: reference.ParseNormalizedNamed
# vendor/github.com/docker/docker/client/container_commit.go:25: undefined: reference.TagNameOnly
# vendor/github.com/docker/docker/client/container_commit.go:30: undefined: reference.FamiliarNam
[[override]]
name = "github.com/docker/distribution"
branch = "master"
# To use reference package:
# vendor/github.com/docker/docker/registry/registry.go:30: cannot call non-function tlsconfig.ServerDefault (type tls.Config)
# vendor/github.com/docker/docker/registry/registry.go:66: undefined: tlsconfig.SystemCertPool
# vendor/github.com/docker/docker/registry/registry.go:168: cannot call non-function tlsconfig.ServerDefault (type tls.Config)
# vendor/github.com/docker/docker/registry/service_v2.go:11: cannot call non-function tlsconfig.ServerDefault (type tls.Config)
[[override]]
name = "github.com/docker/go-connections"
branch = "master"

181
Makefile
View File

@@ -2,105 +2,122 @@
# Use of this source code is governed by a Apache license
# that can be found in the LICENSE file.
TRAG.Org:=kubesphere
TRAG.Name:=ks-apiserver
TRAG.Gopkg:=kubesphere.io/kubesphere
TRAG.Version:=$(TRAG.Gopkg)/pkg/version
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true"
DOCKER_TAGS=latest
RUN_IN_DOCKER:=docker run -it --rm -v `pwd`:/go/src/$(TRAG.Gopkg) -v `pwd`/tmp/cache:/root/.cache/go-build -w /go/src/$(TRAG.Gopkg) -e GOBIN=/go/src/$(TRAG.Gopkg)/tmp/bin -e USER_ID=`id -u` -e GROUP_ID=`id -g` kubesphere/kubesphere-builder
GO_FMT:=goimports -l -w -e -local=kubesphere -srcdir=/go/src/$(TRAG.Gopkg)
GO_FILES:=./cmd ./pkg
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
else
GOBIN=$(shell go env GOBIN)
endif
define get_diff_files
$(eval DIFF_FILES=$(shell git diff --name-only --diff-filter=ad | grep -E "^(test|cmd|pkg)/.+\.go"))
OUTPUT_DIR=bin
GOFLAGS=-mod=vendor
define ALL_HELP_INFO
# Build code.
#
# Args:
# WHAT: Directory names to build. If any of these directories has a 'main'
# package, the build will produce executable files under $(OUT_DIR).
# If not specified, "everything" will be built.
# GOFLAGS: Extra flags to pass to 'go' when building.
# GOLDFLAGS: Extra linking flags passed to 'go' when building.
# GOGCFLAGS: Additional go compile flags passed to 'go' when building.
#
# Example:
# make
# make all
# make all WHAT=cmd/ks-apiserver
# Note: Use the -N -l options to disable compiler optimizations an inlining.
# Using these build options allows you to subsequently use source
# debugging tools like delve.
endef
define get_build_flags
$(eval SHORT_VERSION=$(shell git describe --tags --always --dirty="-dev"))
$(eval SHA1_VERSION=$(shell git show --quiet --pretty=format:%H))
$(eval DATE=$(shell date +'%Y-%m-%dT%H:%M:%S'))
$(eval BUILD_FLAG= -X $(TRAG.Version).ShortVersion="$(SHORT_VERSION)" \
-X $(TRAG.Version).GitSha1Version="$(SHA1_VERSION)" \
-X $(TRAG.Version).BuildDate="$(DATE)")
endef
.PHONY: all
all: generate build
all: test ks-apiserver controller-manager
.PHONY: help
help:
# TODO: update help info to last version
@echo "TODO"
# Build ks-apiserver binary
ks-apiserver: fmt vet
hack/gobuild.sh cmd/ks-apiserver
.PHONY: init-vendor
init-vendor:
@if [[ ! -f "$$(which govendor)" ]]; then \
go get -u github.com/kardianos/govendor; \
fi
govendor init
govendor add +external
@echo "init-vendor done"
# Build controller-manager binary
controller-manager: fmt vet
hack/gobuild.sh cmd/controller-manager
.PHONY: update-vendor
update-vendor:
@if [[ ! -f "$$(which govendor)" ]]; then \
go get -u github.com/kardianos/govendor; \
fi
govendor update +external
govendor list
@echo "update-vendor done"
# Run go fmt against code
fmt: generate
gofmt -w ./pkg ./cmd ./tools ./api
.PHONY: update-builder
update-builder:
docker pull kubesphere/kubesphere-builder
@echo "update-builder done"
# Run go vet against code
vet: generate
go vet ./pkg/... ./cmd/...
.PHONY: generate-in-local
generate-in-local:
go generate ./pkg/version/
# Generate manifests e.g. CRD, RBAC etc.
manifests:
go run ./vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go object:headerFile=./hack/boilerplate.go.txt paths=./pkg/apis/... rbac:roleName=controller-perms ${CRD_OPTIONS} output:crd:artifacts:config=config/crds
.PHONY: generate
deploy: manifests
kubectl apply -f config/crds
kustomize build config/default | kubectl apply -f -
# generate will generate crds' deepcopy & go openapi structs
# Futher more about go:genreate . https://blog.golang.org/generate
generate:
$(RUN_IN_DOCKER) make generate-in-local
@echo "generate done"
go generate ./pkg/... ./cmd/...
.PHONY: fmt-all
fmt-all:
mkdir -p ./tmp/bin && cp -r ./install ./tmp/
$(RUN_IN_DOCKER) $(GO_FMT) $(GO_FILES)
@echo "fmt done"
mockgen:
mockgen -package=openpitrix -source=pkg/simple/client/openpitrix/openpitrix.go -destination=pkg/simple/client/openpitrix/mock.go
.PHONY: fmt
fmt:
$(call get_diff_files)
$(if $(DIFF_FILES), \
$(RUN_IN_DOCKER) $(GO_FMT) ${DIFF_FILES}, \
$(info cannot find modified files from git) \
)
@echo "fmt done"
deepcopy:
GO111MODULE=on go install -mod=vendor k8s.io/code-generator/cmd/deepcopy-gen
${GOPATH}/bin/deepcopy-gen -i kubesphere.io/kubesphere/pkg/apis/... -h ./hack/boilerplate.go.txt -O zz_generated.deepcopy
.PHONY: fmt-check
fmt-check: fmt-all
$(call get_diff_files)
$(if $(DIFF_FILES), \
exit 2 \
)
openapi:
go run ./vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go -O openapi_generated -i ./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./pkg/apis/tenant/v1alpha1 -p kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1 -h ./hack/boilerplate.go.txt --report-filename ./api/api-rules/violation_exceptions.list
go run ./vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go -O openapi_generated -i ./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./pkg/apis/servicemesh/v1alpha2 -p kubesphere.io/kubesphere/pkg/apis/servicemesh/v1alpha2 -h ./hack/boilerplate.go.txt --report-filename ./api/api-rules/violation_exceptions.list
go run ./vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go -O openapi_generated -i ./vendor/k8s.io/api/networking/v1,./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./vendor/k8s.io/apimachinery/pkg/util/intstr,./pkg/apis/network/v1alpha1 -p kubesphere.io/kubesphere/pkg/apis/network/v1alpha1 -h ./hack/boilerplate.go.txt --report-filename ./api/api-rules/violation_exceptions.list
go run ./vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go -O openapi_generated -i ./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./pkg/apis/devops/v1alpha1,./vendor/k8s.io/apimachinery/pkg/runtime,./vendor/k8s.io/api/core/v1 -p kubesphere.io/kubesphere/pkg/apis/devops/v1alpha1 -h ./hack/boilerplate.go.txt --report-filename ./api/api-rules/violation_exceptions.list
go run ./vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go -O openapi_generated -i ./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./pkg/apis/cluster/v1alpha1,./vendor/k8s.io/apimachinery/pkg/runtime,./vendor/k8s.io/api/core/v1 -p kubesphere.io/kubesphere/pkg/apis/cluster/v1alpha1 -h ./hack/boilerplate.go.txt --report-filename ./api/api-rules/violation_exceptions.list
go run ./vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go -O openapi_generated -i ./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./pkg/apis/devops/v1alpha3,./vendor/k8s.io/apimachinery/pkg/runtime -p kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3 -h ./hack/boilerplate.go.txt --report-filename ./api/api-rules/violation_exceptions.list
go run ./tools/cmd/crd-doc-gen/main.go
go run ./tools/cmd/doc-gen/main.go
# Build the docker image
docker-build: all
hack/docker_build.sh
.PHONY: build
build: fmt
mkdir -p ./tmp/bin && cp -r ./install/ ./tmp/
$(call get_build_flags)
$(RUN_IN_DOCKER) time go install -ldflags '$(BUILD_FLAG)' $(TRAG.Gopkg)/cmd/...
mv ./tmp/bin/cmd ./tmp/bin/$(TRAG.Name)
@docker build -t $(TRAG.Org)/$(TRAG.Name) -f ./Dockerfile.dev ./tmp
@docker image prune -f 1>/dev/null 2>&1
@echo "build done"
.PHONY: release
release:
@echo "TODO"
# Run tests
test: fmt vet
export KUBEBUILDER_CONTROLPLANE_START_TIMEOUT=1m; go test ./pkg/... ./cmd/... -covermode=atomic -coverprofile=coverage.txt
.PHONY: clean
clean:
-make -C ./pkg/version clean
@echo "ok"
# find or download controller-gen
# download controller-gen if necessary
clientset:
./hack/generate_client.sh
# Currently in the upgrade phase of controller tools.
# But the new controller tools are not compatible with the old version.
# With these commands you may need to manually modify the generated code
# So don't use it unless you know it very deeply
internal-crds:
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./pkg/apis/network/..." output:crd:artifacts:config=config/crd/bases
internal-generate-apis: internal-controller-gen
$(CONTROLLER_GEN) object:headerFile=./hack/boilerplate.go.txt paths=./pkg/apis/network/...
internal-controller-gen:
ifeq (, $(shell which controller-gen))
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.2.0-beta.4
CONTROLLER_GEN=$(GOBIN)/controller-gen
else
CONTROLLER_GEN=$(shell which controller-gen)
endif
network-rbac:
$(CONTROLLER_GEN) paths=./pkg/controller/network/provider/ paths=./pkg/controller/network/ rbac:roleName=network-manager output:rbac:artifacts:config=kustomize/network/calico-k8s
$(CONTROLLER_GEN) paths=./pkg/controller/network/ rbac:roleName=network-manager output:rbac:artifacts:config=kustomize/network/calico-etcd

21
OWNERS Normal file
View File

@@ -0,0 +1,21 @@
approvers:
- zryfish #oncall
- rayzhou2017
reviewers:
- rayzhou2017
- zryfish
- benjaminhuo
- calvinyv
- FeynmanZhou
- huanggze
- huojiao2006
- Ma-Dan
- magicsong
- pixiake
- runzexia
- wansir
- wnxn
- zheng1
- soulseen
- shaowenchen

3
PROJECT Normal file
View File

@@ -0,0 +1,3 @@
version: "1"
domain: kubesphere.io
repo: kubesphere.io/kubesphere

178
README.md
View File

@@ -1,38 +1,170 @@
# KubeSphere
# KubeSphere Container Platform
[![License](http://img.shields.io/badge/license-apache%20v2-blue.svg)](https://github.com/KubeSphere/KubeSphere/blob/master/LICENSE)
[![Build Status](https://travis-ci.org/kubesphere/kubesphere.svg?branch=master)](https://travis-ci.org/kubesphere/kubesphere)
[![Go Report Card](https://goreportcard.com/badge/github.com/kubesphere/kubesphere)](https://goreportcard.com/report/github.com/kubesphere/kubesphere)
[![KubeSphere release](https://img.shields.io/github/release/kubesphere/kubesphere.svg?color=release&label=release&logo=release&logoColor=release)](https://github.com/kubesphere/kubesphere/releases/tag/v2.1.1)
![logo](docs/images/kubesphere-logo.png)
----
***KubeSphere*** is a distribution of [Kubernetes](https://kubernetes.io), aimed to provide quick setup, friendly and easily use, and powerful management features for Kubernetes clusters, which could help both personal and enterprise users, reduce their learning curve of Kubernetes, accelerate their transform process from other container platforms to Kubernetes.  
**Features:**
- Multiple IaaS platform support, including baremetal/KVM/QingCloud, and more will be supported in future release.
- Easy setup of Kubernetes standalone(only one master node) and cluster environment(including High Availability support).
- Powerful management console to help business users to manage and monitor the Kubernetes environment.
- Integrate with [OpenPitrix](https://github.com/openpitrix) to provide full life cycle of application management and be compatible of helm package.
- Support popular open source network solutions, including calico and flannel, also could use [qingcloud hostnic solution](https://github.com/yunify/hostnic-cni) if the Kubernetes is deployed on QingCloud platform.
- Support popular open source storage solutions, including Glusterfs and Cephfs, also could use [qingcloud storage solution](https://github.com/yunify/qingcloud-volume-provisioner) if the Kubernetes is deployed on QingCloud platform.
- CI/CD support.
- Service Mesh support.
- Multiple image registries support.
- Federation support.
- Integrate with QingCloud IAM.
## What is KubeSphere
> English | [中文](README_zh.md)
[KubeSphere](https://kubesphere.io/) is a **distributed operating system providing cloud native stack** with [Kubernetes](https://kubernetes.io) as its kernel, and aims to be plug-and-play architecture for third-party applications seamless integration to boost its ecosystem. KubeSphere is also a multi-tenant enterprise-grade container platform with full-stack automated IT operation and streamlined DevOps workflows. It provides developer-friendly wizard web UI, helping enterprises to build out a more robust and feature-rich platform, which includes most common functionalities needed for enterprise Kubernetes strategy, see [Feature List](#features) for details.
The following screenshots give a close insight into KubeSphere. Please check [What is KubeSphere](https://kubesphere.io/docs/introduction/what-is-kubesphere/) for further information.
<table>
<tr>
<td width="50%" align="center"><b>Workbench</b></td>
<td width="50%" align="center"><b>Project Resources</b></td>
</tr>
<tr>
<td><img src="docs/images/console.png"/></td>
<td><img src="docs/images/project.png"/></td>
</tr>
<tr>
<td width="50%" align="center"><b>CI/CD Pipeline</b></td>
<td width="50%" align="center"><b>App Store</b></td>
</tr>
<tr>
<td><img src="docs/images/cicd.png"/></td>
<td><img src="docs/images/app-store.png"/></td>
</tr>
</table>
## Demo Environment
Using the account `demo1 / Demo123` to log in the [demo environment](https://demo.kubesphere.io/). Please note the account is granted view access. You can also have a quick view of [KubeSphere Demo Video](https://youtu.be/u5lQvhi_Xlc).
## Architecture
KubeSphere uses a loosely-coupled architecture that separates the [frontend](https://github.com/kubesphere/console) from the [backend](https://github.com/kubesphere/kubesphere). External systems can access the components of the backend which are delivered as Docker containers through the REST APIs. See [Architecture](https://kubesphere.io/docs/introduction/architecture/) for details.
![Architecture](docs/images/architecture.png)
## Features
|Feature|Description|
|---|---|
| Provisioning Kubernetes Cluster|Support deploy Kubernetes on your infrastructure out of box, including online and air gapped installation|
| Kubernetes Resource Management | Provide web console for creating and managing Kubernetes resources, with powerful observability including monitoring, logging, events, alerting and notification |
| DevOps System | Provide out-of-box CI/CD based on Jenkins, and offers automated workflow tools including binary-to-image (B2I) and source-to-image (S2I) |
| Application Store | Provide application store for Helm-based applications, and offers application lifecycle management |
| Service Mesh (Istio-based) | Provide fine-grained traffic management, observability and tracing for distributed microservice applications, provides visualization for traffic topology |
| Rich Observability | Provide multi-dimensional monitoring metrics, and provides multi-tenant log query and collection, support alerting and notification for both application and infrastructure |
| Multi-tenant Management | Provide unified authentication with fine-grained roles and three-tier authorization system, supports AD/LDAP authentication |
| Infrastructure Management | Support node management and monitoring, and supports adding new nodes for Kubernetes cluster |
| Storage Support | Support GlusterFS, CephRBD, NFS, Local (default) etc. open source storage solutions, provide CSI plugins to consume storage from cloud providers |
| Network Support | Support Calico, Flannel, etc. open source network solutions, provides load balancer plug-in [Porter](https://github.com/kubesphere/porter) for Kubernetes installed on physical machines |
| GPU Support | Support add GPU node, support vGPU, enables running ML applications on Kubernetes, e.g. TensorFlow |
Please See the [Feature and Benefits](https://kubesphere.io/docs/introduction/features/) for further information.
----
## Motivation
## Latest Release
The project originates from the requirement and pains we heard from our customers on public and private QingCloud platform, who have strong will to deploy Kubernetes in their IT system but struggle on completed setup process and long learning curve. With help of KubeSphere, their IT operators could setup Kubernetes environment quickly and use an easy management UI interface to mange their applications.
KubeSphere 2.1.1 was released on **February 23rd, 2020**. See the [Release Notes For 2.1.1](https://kubesphere.io/docs/release/release-v211/) for the updates.
Getting Started
---------------
**TBD**
## Installation
## Design
KubeSphere can run anywhere from on-premise datacenter to any cloud to edge. In addition, it can be deployed on any version-compatible running Kubernetes cluster.
## Contributing to the project
### Deploy on Existing Kubernetes Cluster
All [members](docs/members.md) of the KubeSphere community must abide by [Code of Conduct](code-of-conduct.md). Only by respecting each other can we develop a productive, collaborative community.
#### Prerequisites
You can then check out how to [setup for development](docs/development.md).
- `Kubernetes version` `1.15.x, 1.16.x, 1.17.x`
- `2.10.0 ≤ Helm Version 3.0.0` excluding 2.16.0 because of [#6894](https://github.com/helm/helm/issues/6894). Please see [Install and Configure Helm in Kubernetes](https://devopscube.com/install-configure-helm-kubernetes/). Helm v3 will be supported in KubeSphere 3.0.0.
- An existing Storage Class in your Kubernetes cluster, use `kubectl get sc` to verify it
- The CSR signing feature is activated in kube-apiserver, see [RKE installation issue](https://github.com/kubesphere/kubesphere/issues/1925#issuecomment-591698309).
Install KubeSphere using kubectl.
- If there are 1 Core and 2 GB RAM available in your cluster, use the command below to set up a default minimal installation only. You can enable other components after installation if more resource added in later on. See [Pluggable Components Installation](https://kubesphere.io/docs/installation/pluggable-components/) for detailed information.
```bash
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml
```
- If there are 8 Cores and 16 GB RAM available in your cluster, use the command below to install a complete KubeSphere, i.e. with all components enabled:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-complete-setup.yaml
```
Wait the installation logs using the following command till showing `"Successful"`, then you can log in the console using the default username and password.
```bash
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
```
### Deploy on Linux
KubeSphere Installer can help you to install KubeSphere and Kubernetes on your linux machines. It provides [All-in-One](https://kubesphere.io/docs/installation/all-in-one/) and [Multi-Node](https://kubesphere.io/docs/installation/multi-node/) installation options.
#### Minimum Requirements
- Operating Systems
- CentOS 7.4~7.7 (64 bit)
- Ubuntu 16.04/18.04 LTS (64 bit)
- Red Hat Enterprise Linux Server 7.4 (64 bit)
- Debian Stretch 9.5 (64 bit)
- Hardware
- CPU2 Cores, Memory4 GB, Disk Space100 GB
> Note: Please disable the firewall, or ensure your firewall meets the [port requirements](https://kubesphere.io/docs/installation/port-firewall/).
#### All-in-One (QuickStart)
```bash
curl -L https://kubesphere.io/download/stable/latest > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.1/scripts
$ ./install.sh
```
Choose `"1) All-in-one"` to start the default minimal installation.
You can enable other components after installation, see [Pluggable Components Installation](https://kubesphere.io/docs/installation/pluggable-components/).
## To start using KubeSphere
- KubeSphere Documentation ([En](https://kubesphere.io/docs/)/[](https://kubesphere.io/docs/zh-CN/)
- [API Documentation](https://kubesphere.io/docs/api-reference/api-docs/)
## Contributing, Support, Discussion, and Community
This [community](https://github.com/kubesphere/community) walks you through how to get started contributing KubeSphere. The [development guide](https://github.com/kubesphere/community/tree/master/developer-guide/development) explains how to set up development environment.
If you need any help with KubeSphere, please join us at [Slack Channel](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE).
We also communicate through [Google Group](https://groups.google.com/forum/#!forum/kubesphere).
Please submit any KubeSphere bugs, issues, and feature requests to [KubeSphere GitHub Issue](https://github.com/kubesphere/kubesphere/issues).
## Who are using KubeSphere
The [Powered by KubeSphere](https://kubesphere.io/case/) page includes the user list of the project. You can submit your institution name and homepage if you are using KubeSphere.
## RoadMap
Currently, KubeSphere has released the following 5 major editions. The future releases include multicluster, big data, AI, SDN, etc. See [Plans for 2.1.1 and 3.0.0](https://github.com/kubesphere/kubesphere/issues/1368) for more details.
**Express Edition** => **v1.0.x** => **v2.0.x** => **v2.1.0** => **v2.1.1** => **v3.0.0**
![Roadmap](https://pek3b.qingstor.com/kubesphere-docs/png/20190926000413.png)
## Landscapes
<p align="center">
<br/><br/>
<img src="https://landscape.cncf.io/images/left-logo.svg" width="150"/>&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200"/>&nbsp;&nbsp;<img src="https://www.cncf.io/wp-content/uploads/2017/11/certified_kubernetes_color.png" height="40" width="30"/>
<br/><br/>
KubeSphere is a member of CNCF and a <a href="https://www.cncf.io/certification/software-conformance/#logos">Kubernetes Conformance Certified platform
</a>, which enriches the <a href="https://landscape.cncf.io/landscape=observability-and-analysis&license=apache-license-2-0">CNCF CLOUD NATIVE Landscape.
</a>
</p>

166
README_zh.md Normal file
View File

@@ -0,0 +1,166 @@
# KubeSphere 容器平台
[![License](http://img.shields.io/badge/license-apache%20v2-blue.svg)](https://github.com/KubeSphere/KubeSphere/blob/master/LICENSE)
[![Build Status](https://travis-ci.org/kubesphere/kubesphere.svg?branch=master)](https://travis-ci.org/kubesphere/kubesphere)
[![KubeSphere release](https://img.shields.io/github/release/kubesphere/kubesphere.svg?color=release&label=release&logo=release&logoColor=release)](https://github.com/kubesphere/kubesphere/releases/tag/v2.1.1)
![logo](docs/images/kubesphere-logo.png)
----
## KubeSphere 是什么
> [English](README.md) | 中文
[KubeSphere](https://kubesphere.com.cn) 是在 [Kubernetes](https://kubernetes.io) 之上构建的以**应用为中心的**多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 愿景是打造一个基于 Kubernetes 的云原生分布式操作系统它的架构可以很方便地与云原生生态进行即插即用plug-and-play的集成。
KubeSphere 目前最新的版本为 2.1.1,所有版本 100% 开源,关于 KubeSphere 更详细的介绍与说明请参阅 [什么是 KubeSphere](https://kubesphere.com.cn/docs/zh-CN/introduction/what-is-kubesphere/)。
<table>
<tr>
<td width="50%" align="center"><b>工作台</b></td>
<td width="50%" align="center"><b>项目资源</b></td>
</tr>
<tr>
<td><img src="docs/images/console.png"/></td>
<td><img src="docs/images/project.png"/></td>
</tr>
<tr>
<td width="50%" align="center"><b>CI/CD 流水线</b></td>
<td width="50%" align="center"><b>应用商店</b></td>
</tr>
<tr>
<td><img src="docs/images/cicd.png"/></td>
<td><img src="docs/images/app-store.png"/></td>
</tr>
</table>
## 快速体验
使用体验账号 `demo1 / Demo123` 登录 [Demo 环境](https://demo.kubesphere.io/),该账号仅授予了 view 权限,建议自行安装体验完整的管理功能。您还可以访问 Youtube 查看 [KubeSphere Demo 视频](https://youtu.be/u5lQvhi_Xlc)。
## 架构
KubeSphere 采用了前后端分离的架构设计,后端的各个功能组件可通过 REST API 对接外部系统,详见 [架构说明](https://kubesphere.com.cn/docs/zh-CN/introduction/architecture/)。本仓库仅包含后端代码,前端代码参考 [Console 项目](https://github.com/kubesphere/console)。
![Architecture](docs/images/architecture.png)
## 核心功能
|功能 |介绍 |
| --- | ---|
| Kubernetes 集群搭建与运维 | 支持在线 & 离线安装、升级与扩容 K8s 集群,支持安装 “云原生全家桶” |
| Kubernetes 资源可视化管理 | 可视化纳管原生 Kubernetes 资源,支持向导式创建与管理 K8s 资源 |
| 基于 Jenkins 的 DevOps 系统 | 支持图形化与脚本两种方式构建 CI/CD 流水线,内置 Source to ImageS2I和 Binary to ImageB2I等 CD 工具 |
| 应用商店与应用生命周期管理 | 提供应用商店,内置 Redis、MySQL 等九个常用应用,支持应用的生命周期管理 |
| 基于 Istio 的微服务治理 (Service Mesh) | 提供可视化无代码侵入的 **灰度发布、熔断、流量治理与流量拓扑、分布式 Tracing** |
| 多租户管理 | 提供基于角色的细粒度多租户统一认证,支持 **对接企业 LDAP/AD**,提供多层级的权限管理 |
| 丰富的可观察性功能 | 提供集群/工作负载/Pod/容器等多维度的监控,提供基于多租户的日志查询与日志收集,支持节点与应用层级的告警与通知 |
|基础设施管理|支持 Kubernetes 节点管理,支持节点扩容与集群升级,提供基于节点的多项监控指标与告警规则 |
| 存储管理 | 支持对接 Ceph、GlusterFS、NFS、Local PV支持可视化管理 PVC、PV、StorageClass提供 CSI 插件对接云平台存储 |
| 网络管理 | 支持 Calico、Flannel提供 Porter LB 插件用于暴露物理环境 K8s 集群的 LoadBalancer 服务 |
| GPU support | 集群支持添加 GPU 与 vGPU可运行 TensorFlow 等 ML 框架 |
以上功能说明详见 [产品功能](https://kubesphere.com.cn/docs/zh-CN/introduction/features/)。
----
## 最新发布
KubeSphere 2.1.1 已于 2020 年 02 月 23 日 正式发布,点击 [Release Notes For 2.1.1](https://kubesphere.com.cn/docs/zh-CN/release/release-v211/) 查看 2.1.1 版本的更新详情。
## 快速安装
### 部署在 Linux
- 操作系统
- CentOS 7.5 (64 bit)
- Ubuntu 16.04/18.04 LTS (64 bit)
- Red Hat Enterprise Linux Server 7.4 (64 bit)
- Debian Stretch 9.5 (64 bit)
- 配置规格(最低)
- CPU2 Cores 内存4 GB 硬盘100 GB
#### All-in-One
执行以下命令下载 Installer请关闭防火墙或 [开放指定的端口](https://kubesphere.com.cn/docs/zh-CN/installation/port-firewall/),建议使用干净的机器并使用 `root` 用户安装:
```bash
curl -L https://kubesphere.io/download/stable/latest > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.1/scripts
./install.sh
```
直接选择 `"1) All-in-one"` 即可开始快速安装。默认仅开启最小安装,请参考 [开启可插拔功能功能组件](https://kubesphere.com.cn/docs/zh-CN/installation/pluggable-components/) 按需开启其它功能组件。
> 注意All-in-One 仅适用于**测试环境****正式环境** 安装和使用请参考 [安装说明](https://kubesphere.com.cn/docs/zh-CN/installation/intro/)。
### 部署在已有 Kubernetes 集群上
可参考 [前提条件](https://kubesphere.com.cn/docs/zh-CN/installation/prerequisites/) 验证是否满足以下条件:
#### 前提条件
- `Kubernetes` 版本: `1.15.x、1.16.x、1.17.x`
- `Helm`版本: `2.10.0 ≤ Helm Version 3.0.0`(不支持 helm 2.16.0 [#6894](https://github.com/helm/helm/issues/6894)),且已安装了 Tiller参考 [如何安装与配置 Helm](https://devopscube.com/install-configure-helm-kubernetes/) (预计 3.0 支持 Helm v3
- 集群已有默认的存储类型StorageClass若还没有准备存储请参考 [安装 OpenEBS 创建 LocalPV 存储类型](../../appendix/install-openebs) 用作开发测试环境。
用 kubectl 安装
- 若您的集群可用的资源符合 CPU >= 1 Core可用内存 >= 2 G可参考以下命令开启 KubeSphere 最小化安装。后续如果您的集群资源足够可以参考 [开启可插拔功能功能组件](https://kubesphere.com.cn/docs/zh-CN/installation/pluggable-components/) 按需开启其它功能组件。
```yaml
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml
```
- 若您的集群可用的资源符合 CPU ≥ 8 Core可用内存 ≥ 16 G建议参考以下命令开启 KubeSphere 完整安装,即开启所有功能组件的安装:
```yaml
kubectl apply -f https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-complete-setup.yaml
```
查看滚动刷新的安装日志,请耐心等待安装成功。当看到 `"Successful"` 的日志与登录信息提示,则说明 KubeSphere 安装成功,请使用日志提示的管理员账号登陆控制台。
```bash
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
```
## 开始使用 KubeSphere
- KubeSphere 文档中心 ([En](https://kubesphere.com.cn/docs/)/[](https://kubesphere.com.cn/docs/zh-CN/))
- [API 文档](https://kubesphere.com.cn/docs/zh-CN/api-reference/api-docs/)
## 技术社区
[KubeSphere 社区](https://github.com/kubesphere/community)包含所有社区的信息,包括如何开发,兴趣小组(SIG)等。比如[开发指南](https://github.com/kubesphere/community/tree/master/developer-guide/development) 详细说明了如何从源码编译、KubeSphere 的 GitHub 工作流、如何贡献代码以及如何测试等。
- [论坛](https://kubesphere.com.cn/forum/)
- [Slack Channel](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE)
## Bug 与建议反馈
欢迎在 [GitHub Issue](https://github.com/kubesphere/kubesphere/issues) 提交 Issue。
## 谁在使用 KubeSphere
[Powered by KubeSphere](docs/powered-by-kubesphere.md) 列出了哪些企业在使用 KubeSphere如果您所在的企业已安装使用了 KubeSphere欢迎提交 PR 至该页面。
## 路线图
目前KubeSphere 已发布了 3 个大版本和 1 个小版本和 4 个 fixpack所有版本都是完全开源的参考 [Plans for 2.1.1 and 3.0.0](https://github.com/kubesphere/kubesphere/issues/1368) 了解后续版本的规划,欢迎在 GitHub issue 中提交需求。
**Express Edition** => **v1.0.x** => **v2.0.x** => **v2.1.0** => **v2.1.1** => **v3.0.0**
![Roadmap](https://pek3b.qingstor.com/kubesphere-docs/png/20190926000514.png)
## Landscapes
<p align="center">
<br/><br/>
<img src="https://landscape.cncf.io/images/left-logo.svg" width="150"/>&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200"/>&nbsp;&nbsp;<img src="https://www.cncf.io/wp-content/uploads/2017/11/certified_kubernetes_color.png" height="40" width="30"/>
<br/><br/>
KubeSphere 是 CNCF 基金会成员并且通过了 <a href="https://www.cncf.io/certification/software-conformance/#logos">Kubernetes 一致性认证
</a>,进一步丰富了 <a href="https://landscape.cncf.io/landscape=observability-and-analysis&license=apache-license-2-0">CNCF 云原生的生态。
</a>
</p>

View File

@@ -0,0 +1,84 @@
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIGroup,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIGroup,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIGroupList,Groups
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResource,Categories
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResource,ShortNames
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,ServerAddressByClientCIDRs
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,APIVersions,Versions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,CreateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,DeleteOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,FieldsV1,Raw
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,LabelSelector,MatchExpressions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,LabelSelectorRequirement,Values
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,List,Items
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ObjectMeta,Finalizers
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ObjectMeta,ManagedFields
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,ObjectMeta,OwnerReferences
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,PartialObjectMetadataList,Items
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,PatchOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,RootPaths,Paths
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,StatusDetails,Causes
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,Table,ColumnDefinitions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,Table,Rows
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,TableRow,Cells
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,TableRow,Conditions
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/apis/meta/v1,UpdateOptions,DryRun
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/runtime,RawExtension,Raw
API rule violation: list_type_missing,k8s.io/apimachinery/pkg/runtime,Unknown,Raw
API rule violation: list_type_missing,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,DevOpsProjectList,Items
API rule violation: list_type_missing,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,NoScmPipeline,Parameters
API rule violation: list_type_missing,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,PipelineList,Items
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Duration,Duration
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Object
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Type
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,MicroTime,Time
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,StatusCause,Type
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Time,Time
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentEncoding
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentType
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,Raw
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,ApiUri
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,CloneOption
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,CredentialId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,DiscoverBranches
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,DiscoverPRFromForks
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,DiscoverPRFromOrigin
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,RegexFilter
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,BitbucketServerSource,ScmId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,DiscarderProperty,DaysToKeep
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,DiscarderProperty,NumToKeep
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GitSource,CloneOption
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GitSource,CredentialId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GitSource,DiscoverBranches
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GitSource,RegexFilter
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GitSource,ScmId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,ApiUri
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,CloneOption
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,CredentialId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,DiscoverBranches
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,DiscoverPRFromForks
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,DiscoverPRFromOrigin
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,RegexFilter
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,GithubSource,ScmId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchJobTrigger,CreateActionJobsToTrigger
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchJobTrigger,DeleteActionJobsToTrigger
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,BitbucketServerSource
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,GitHubSource
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,GitSource
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,MultiBranchJobTrigger
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,ScriptPath
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,SingleSvnSource
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,SourceType
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,SvnSource
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,MultiBranchPipeline,TimerTrigger
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,NoScmPipeline,DisableConcurrent
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,NoScmPipeline,RemoteTrigger
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,NoScmPipeline,TimerTrigger
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,Parameter,DefaultValue
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,PipelineSpec,MultiBranchPipeline
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,SingleSvnSource,CredentialId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,SingleSvnSource,ScmId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,SvnSource,CredentialId
API rule violation: names_match,kubesphere.io/kubesphere/pkg/apis/devops/v1alpha3,SvnSource,ScmId

File diff suppressed because it is too large Load Diff

11398
api/openapi-spec/swagger.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +0,0 @@
ls /go/bin
go version
exit

View File

@@ -1,19 +0,0 @@
# Copyright 2018 The KubeSphere Authors. All rights reserved.
# Use of this source code is governed by a Apache license
# that can be found in the LICENSE file.
FROM golang:1.10.2-alpine3.7 as builder
RUN apk add --no-cache git curl openssl
RUN go get github.com/tools/godep
#RUN go get github.com/emicklei/go-restful
#RUN go get github.com/golang/glog
#RUN go get github.com/spf13/pflag
RUN go get golang.org/x/tools/cmd/goimports
FROM golang:1.10.2-alpine3.7
RUN apk add --no-cache git make curl openssl jq rsync godep
COPY --from=builder /go/bin /go/bin

View File

@@ -1,17 +0,0 @@
# Copyright 2018 The KubeSphere Authors. All rights reserved.
# Use of this source code is governed by a Apache license
# that can be found in the LICENSE file.
default:
docker build -t kubesphere/kubesphere-builder .
@echo "ok"
pull:
docker pull kubesphere/kubesphere-builder
@echo "ok"
run:
docker run --rm -it -v `pwd`:/root kubesphere/kubesphere-builder
clean:
@echo "ok"

View File

@@ -0,0 +1,16 @@
# Copyright 2020 The KubeSphere Authors. All rights reserved.
# Use of this source code is governed by an Apache license
# that can be found in the LICENSE file.
FROM alpine:3.11
RUN apk add --no-cache ca-certificates
# To speed up building process, we copy binary directly from make
# result instead of building it again, so make sure you run the
# following command first before building docker image
# make ks-apiserver
#
COPY /bin/cmd/ks-apiserver /usr/local/bin/
EXPOSE 9090
CMD ["sh"]

View File

@@ -0,0 +1,12 @@
# Copyright 2020 The KubeSphere Authors. All rights reserved.
# Use of this source code is governed by an Apache license
# that can be found in the LICENSE file.
FROM alpine:3.11
COPY /bin/cmd/controller-manager /usr/local/bin/
RUN apk add --no-cache ca-certificates
EXPOSE 8443 8080
CMD ["sh"]

View File

@@ -0,0 +1,327 @@
/*
Copyright 2019 The KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package app
import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/tools/cache"
"k8s.io/klog"
iamv1alpha2 "kubesphere.io/kubesphere/pkg/apis/iam/v1alpha2"
authoptions "kubesphere.io/kubesphere/pkg/apiserver/authentication/options"
"kubesphere.io/kubesphere/pkg/controller/application"
"kubesphere.io/kubesphere/pkg/controller/certificatesigningrequest"
"kubesphere.io/kubesphere/pkg/controller/cluster"
"kubesphere.io/kubesphere/pkg/controller/clusterrolebinding"
"kubesphere.io/kubesphere/pkg/controller/destinationrule"
"kubesphere.io/kubesphere/pkg/controller/devopscredential"
"kubesphere.io/kubesphere/pkg/controller/devopsproject"
"kubesphere.io/kubesphere/pkg/controller/globalrole"
"kubesphere.io/kubesphere/pkg/controller/globalrolebinding"
"kubesphere.io/kubesphere/pkg/controller/job"
"kubesphere.io/kubesphere/pkg/controller/network/nsnetworkpolicy"
"kubesphere.io/kubesphere/pkg/controller/network/provider"
"kubesphere.io/kubesphere/pkg/controller/pipeline"
"kubesphere.io/kubesphere/pkg/controller/s2ibinary"
"kubesphere.io/kubesphere/pkg/controller/s2irun"
"kubesphere.io/kubesphere/pkg/controller/storage/capability"
"kubesphere.io/kubesphere/pkg/controller/storage/expansion"
"kubesphere.io/kubesphere/pkg/controller/user"
"kubesphere.io/kubesphere/pkg/controller/virtualservice"
"kubesphere.io/kubesphere/pkg/controller/workspacerole"
"kubesphere.io/kubesphere/pkg/controller/workspacerolebinding"
"kubesphere.io/kubesphere/pkg/controller/workspacetemplate"
"kubesphere.io/kubesphere/pkg/informers"
"kubesphere.io/kubesphere/pkg/simple/client/devops"
"kubesphere.io/kubesphere/pkg/simple/client/k8s"
ldapclient "kubesphere.io/kubesphere/pkg/simple/client/ldap"
"kubesphere.io/kubesphere/pkg/simple/client/network"
"kubesphere.io/kubesphere/pkg/simple/client/openpitrix"
"kubesphere.io/kubesphere/pkg/simple/client/s3"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/kubefed/pkg/controller/util"
)
func addControllers(
mgr manager.Manager,
client k8s.Client,
informerFactory informers.InformerFactory,
devopsClient devops.Interface,
s3Client s3.Interface,
ldapClient ldapclient.Interface,
authenticationOptions *authoptions.AuthenticationOptions,
openpitrixClient openpitrix.Client,
multiClusterEnabled bool,
networkOptions *network.Options,
serviceMeshEnabled bool,
kubectlImage string,
stopCh <-chan struct{}) error {
kubernetesInformer := informerFactory.KubernetesSharedInformerFactory()
istioInformer := informerFactory.IstioSharedInformerFactory()
kubesphereInformer := informerFactory.KubeSphereSharedInformerFactory()
applicationInformer := informerFactory.ApplicationSharedInformerFactory()
var vsController, drController manager.Runnable
if serviceMeshEnabled {
vsController = virtualservice.NewVirtualServiceController(kubernetesInformer.Core().V1().Services(),
istioInformer.Networking().V1alpha3().VirtualServices(),
istioInformer.Networking().V1alpha3().DestinationRules(),
kubesphereInformer.Servicemesh().V1alpha2().Strategies(),
client.Kubernetes(),
client.Istio(),
client.KubeSphere())
drController = destinationrule.NewDestinationRuleController(kubernetesInformer.Apps().V1().Deployments(),
istioInformer.Networking().V1alpha3().DestinationRules(),
kubernetesInformer.Core().V1().Services(),
kubesphereInformer.Servicemesh().V1alpha2().ServicePolicies(),
client.Kubernetes(),
client.Istio(),
client.KubeSphere())
}
apController := application.NewApplicationController(kubernetesInformer.Core().V1().Services(),
kubernetesInformer.Apps().V1().Deployments(),
kubernetesInformer.Apps().V1().StatefulSets(),
kubesphereInformer.Servicemesh().V1alpha2().Strategies(),
kubesphereInformer.Servicemesh().V1alpha2().ServicePolicies(),
applicationInformer.App().V1beta1().Applications(),
client.Kubernetes(),
client.Application())
jobController := job.NewJobController(kubernetesInformer.Batch().V1().Jobs(), client.Kubernetes())
var s2iBinaryController, s2iRunController, devopsProjectController, devopsPipelineController, devopsCredentialController manager.Runnable
if devopsClient != nil {
s2iBinaryController = s2ibinary.NewController(client.Kubernetes(),
client.KubeSphere(),
kubesphereInformer.Devops().V1alpha1().S2iBinaries(),
s3Client,
)
s2iRunController = s2irun.NewS2iRunController(client.Kubernetes(),
client.KubeSphere(),
kubesphereInformer.Devops().V1alpha1().S2iBinaries(),
kubesphereInformer.Devops().V1alpha1().S2iRuns())
devopsProjectController = devopsproject.NewController(client.Kubernetes(),
client.KubeSphere(), devopsClient,
informerFactory.KubernetesSharedInformerFactory().Core().V1().Namespaces(),
informerFactory.KubeSphereSharedInformerFactory().Devops().V1alpha3().DevOpsProjects(),
informerFactory.KubeSphereSharedInformerFactory().Tenant().V1alpha1().Workspaces())
devopsPipelineController = pipeline.NewController(client.Kubernetes(),
client.KubeSphere(),
devopsClient,
informerFactory.KubernetesSharedInformerFactory().Core().V1().Namespaces(),
informerFactory.KubeSphereSharedInformerFactory().Devops().V1alpha3().Pipelines())
devopsCredentialController = devopscredential.NewController(client.Kubernetes(),
devopsClient,
informerFactory.KubernetesSharedInformerFactory().Core().V1().Namespaces(),
informerFactory.KubernetesSharedInformerFactory().Core().V1().Secrets())
}
storageCapabilityController := capability.NewController(
client.KubeSphere().StorageV1alpha1().StorageClassCapabilities(),
kubesphereInformer.Storage().V1alpha1(),
client.Kubernetes().StorageV1().StorageClasses(),
kubernetesInformer.Storage().V1().StorageClasses(),
capability.SnapshotSupported(client.Kubernetes().Discovery()),
client.Snapshot().SnapshotV1beta1().VolumeSnapshotClasses(),
informerFactory.SnapshotSharedInformerFactory().Snapshot().V1beta1().VolumeSnapshotClasses(),
kubernetesInformer.Storage().V1beta1().CSIDrivers(),
)
volumeExpansionController := expansion.NewVolumeExpansionController(
client.Kubernetes(),
kubernetesInformer.Core().V1().PersistentVolumeClaims(),
kubernetesInformer.Storage().V1().StorageClasses(),
kubernetesInformer.Core().V1().Pods(),
kubernetesInformer.Apps().V1().Deployments(),
kubernetesInformer.Apps().V1().ReplicaSets(),
kubernetesInformer.Apps().V1().StatefulSets())
var fedUserCache, fedGlobalRoleBindingCache, fedGlobalRoleCache,
fedWorkspaceRoleCache, fedWorkspaceRoleBindingCache cache.Store
var fedUserCacheController, fedGlobalRoleBindingCacheController, fedGlobalRoleCacheController,
fedWorkspaceRoleCacheController, fedWorkspaceRoleBindingCacheController cache.Controller
if multiClusterEnabled {
fedUserClient, err := util.NewResourceClient(client.Config(), &iamv1alpha2.FedUserResource)
if err != nil {
klog.Error(err)
return err
}
fedGlobalRoleClient, err := util.NewResourceClient(client.Config(), &iamv1alpha2.FedGlobalRoleResource)
if err != nil {
klog.Error(err)
return err
}
fedGlobalRoleBindingClient, err := util.NewResourceClient(client.Config(), &iamv1alpha2.FedGlobalRoleBindingResource)
if err != nil {
klog.Error(err)
return err
}
fedWorkspaceRoleClient, err := util.NewResourceClient(client.Config(), &iamv1alpha2.FedWorkspaceRoleResource)
if err != nil {
klog.Error(err)
return err
}
fedWorkspaceRoleBindingClient, err := util.NewResourceClient(client.Config(), &iamv1alpha2.FedWorkspaceRoleBindingResource)
if err != nil {
klog.Error(err)
return err
}
fedUserCache, fedUserCacheController = util.NewResourceInformer(fedUserClient, "", &iamv1alpha2.FedUserResource, func(object runtime.Object) {})
fedGlobalRoleCache, fedGlobalRoleCacheController = util.NewResourceInformer(fedGlobalRoleClient, "", &iamv1alpha2.FedGlobalRoleResource, func(object runtime.Object) {})
fedGlobalRoleBindingCache, fedGlobalRoleBindingCacheController = util.NewResourceInformer(fedGlobalRoleBindingClient, "", &iamv1alpha2.FedGlobalRoleBindingResource, func(object runtime.Object) {})
fedWorkspaceRoleCache, fedWorkspaceRoleCacheController = util.NewResourceInformer(fedWorkspaceRoleClient, "", &iamv1alpha2.FedWorkspaceRoleResource, func(object runtime.Object) {})
fedWorkspaceRoleBindingCache, fedWorkspaceRoleBindingCacheController = util.NewResourceInformer(fedWorkspaceRoleBindingClient, "", &iamv1alpha2.FedWorkspaceRoleBindingResource, func(object runtime.Object) {})
go fedUserCacheController.Run(stopCh)
go fedGlobalRoleCacheController.Run(stopCh)
go fedGlobalRoleBindingCacheController.Run(stopCh)
go fedWorkspaceRoleCacheController.Run(stopCh)
go fedWorkspaceRoleBindingCacheController.Run(stopCh)
}
userController := user.NewUserController(client.Kubernetes(), client.KubeSphere(),
client.Config(),
kubesphereInformer.Iam().V1alpha2().Users(),
fedUserCache, fedUserCacheController,
kubesphereInformer.Iam().V1alpha2().LoginRecords(),
kubernetesInformer.Core().V1().ConfigMaps(),
ldapClient, devopsClient,
authenticationOptions, multiClusterEnabled)
loginRecordController := user.NewLoginRecordController(
client.Kubernetes(),
client.KubeSphere(),
kubesphereInformer.Iam().V1alpha2().LoginRecords(),
authenticationOptions.LoginHistoryRetentionPeriod)
csrController := certificatesigningrequest.NewController(client.Kubernetes(),
kubernetesInformer.Certificates().V1beta1().CertificateSigningRequests(),
kubernetesInformer.Core().V1().ConfigMaps(), client.Config())
clusterRoleBindingController := clusterrolebinding.NewController(client.Kubernetes(),
kubernetesInformer.Rbac().V1().ClusterRoleBindings(),
kubernetesInformer.Apps().V1().Deployments(),
kubernetesInformer.Core().V1().Pods(),
kubesphereInformer.Iam().V1alpha2().Users(),
kubectlImage)
globalRoleController := globalrole.NewController(client.Kubernetes(), client.KubeSphere(),
kubesphereInformer.Iam().V1alpha2().GlobalRoles(), fedGlobalRoleCache, fedGlobalRoleCacheController)
workspaceRoleController := workspacerole.NewController(client.Kubernetes(), client.KubeSphere(),
kubesphereInformer.Iam().V1alpha2().WorkspaceRoles(),
fedWorkspaceRoleCache, fedWorkspaceRoleCacheController,
kubesphereInformer.Tenant().V1alpha2().WorkspaceTemplates(), multiClusterEnabled)
globalRoleBindingController := globalrolebinding.NewController(client.Kubernetes(), client.KubeSphere(),
kubesphereInformer.Iam().V1alpha2().GlobalRoleBindings(),
fedGlobalRoleBindingCache, fedGlobalRoleBindingCacheController,
multiClusterEnabled)
workspaceRoleBindingController := workspacerolebinding.NewController(client.Kubernetes(), client.KubeSphere(),
kubesphereInformer.Iam().V1alpha2().WorkspaceRoleBindings(),
fedWorkspaceRoleBindingCache, fedWorkspaceRoleBindingCacheController,
kubesphereInformer.Tenant().V1alpha2().WorkspaceTemplates(), multiClusterEnabled)
workspaceTemplateController := workspacetemplate.NewController(client.Kubernetes(), client.KubeSphere(),
kubesphereInformer.Tenant().V1alpha2().WorkspaceTemplates(),
kubesphereInformer.Tenant().V1alpha1().Workspaces(),
kubesphereInformer.Iam().V1alpha2().RoleBases(),
kubesphereInformer.Iam().V1alpha2().WorkspaceRoles(),
kubesphereInformer.Types().V1beta1().FederatedWorkspaces(),
multiClusterEnabled)
var clusterController manager.Runnable
if multiClusterEnabled {
clusterController = cluster.NewClusterController(
client.Kubernetes(),
client.Config(),
kubesphereInformer.Cluster().V1alpha1().Clusters(),
client.KubeSphere().ClusterV1alpha1().Clusters(),
openpitrixClient)
}
var nsnpController manager.Runnable
if networkOptions.EnableNetworkPolicy {
nsnpProvider, err := provider.NewNsNetworkPolicyProvider(client.Kubernetes(), kubernetesInformer.Networking().V1().NetworkPolicies())
if err != nil {
return err
}
nsnpController = nsnetworkpolicy.NewNSNetworkPolicyController(client.Kubernetes(),
client.KubeSphere().NetworkV1alpha1(),
kubesphereInformer.Network().V1alpha1().NamespaceNetworkPolicies(),
kubernetesInformer.Core().V1().Services(),
kubernetesInformer.Core().V1().Nodes(),
kubesphereInformer.Tenant().V1alpha1().Workspaces(),
kubernetesInformer.Core().V1().Namespaces(), nsnpProvider, networkOptions.NSNPOptions)
}
controllers := map[string]manager.Runnable{
"virtualservice-controller": vsController,
"destinationrule-controller": drController,
"application-controller": apController,
"job-controller": jobController,
"s2ibinary-controller": s2iBinaryController,
"s2irun-controller": s2iRunController,
"storagecapability-controller": storageCapabilityController,
"volumeexpansion-controller": volumeExpansionController,
"user-controller": userController,
"loginrecord-controller": loginRecordController,
"cluster-controller": clusterController,
"nsnp-controller": nsnpController,
"csr-controller": csrController,
"clusterrolebinding-controller": clusterRoleBindingController,
"globalrolebinding-controller": globalRoleBindingController,
"workspacetemplate-controller": workspaceTemplateController,
"workspacerole-controller": workspaceRoleController,
"workspacerolebinding-controller": workspaceRoleBindingController,
}
if devopsClient != nil {
controllers["pipeline-controller"] = devopsPipelineController
controllers["devopsprojects-controller"] = devopsProjectController
controllers["devopscredential-controller"] = devopsCredentialController
}
if multiClusterEnabled {
controllers["globalrole-controller"] = globalRoleController
}
for name, ctrl := range controllers {
if ctrl == nil {
klog.V(4).Infof("%s is not going to run due to dependent component disabled.", name)
continue
}
if err := mgr.Add(ctrl); err != nil {
klog.Error(err, "add controller to manager failed", "name", name)
return err
}
}
return nil
}

View File

@@ -0,0 +1,54 @@
/*
Copyright 2020 KubeSphere Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package app
import (
"fmt"
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/klog"
"net/http"
"time"
)
// WaitForAPIServer waits for the API Server's /healthz endpoint to report "ok" before timeout.
func WaitForAPIServer(client clientset.Interface, timeout time.Duration) error {
var lastErr error
err := wait.PollImmediate(time.Second, timeout, func() (bool, error) {
healthStatus := 0
result := client.Discovery().RESTClient().Get().AbsPath("/healthz").Do().StatusCode(&healthStatus)
if result.Error() != nil {
lastErr = fmt.Errorf("failed to get apiserver /healthz status: %v", result.Error())
return false, nil
}
if healthStatus != http.StatusOK {
content, _ := result.Raw()
lastErr = fmt.Errorf("APIServer isn't healthy: %v", string(content))
klog.Warningf("APIServer isn't healthy yet: %v. Waiting a little while.", string(content))
return false, nil
}
return true, nil
})
if err != nil {
return fmt.Errorf("%v: %v", err, lastErr)
}
return nil
}

View File

@@ -0,0 +1,137 @@
/*
Copyright 2020 KubeSphere Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package options
import (
"flag"
"github.com/spf13/pflag"
"k8s.io/client-go/tools/leaderelection"
cliflag "k8s.io/component-base/cli/flag"
"k8s.io/klog"
authoptions "kubesphere.io/kubesphere/pkg/apiserver/authentication/options"
"kubesphere.io/kubesphere/pkg/simple/client/devops/jenkins"
"kubesphere.io/kubesphere/pkg/simple/client/k8s"
ldapclient "kubesphere.io/kubesphere/pkg/simple/client/ldap"
"kubesphere.io/kubesphere/pkg/simple/client/multicluster"
"kubesphere.io/kubesphere/pkg/simple/client/network"
"kubesphere.io/kubesphere/pkg/simple/client/openpitrix"
"kubesphere.io/kubesphere/pkg/simple/client/s3"
"kubesphere.io/kubesphere/pkg/simple/client/servicemesh"
"strings"
"time"
)
type KubeSphereControllerManagerOptions struct {
KubernetesOptions *k8s.KubernetesOptions
DevopsOptions *jenkins.Options
S3Options *s3.Options
AuthenticationOptions *authoptions.AuthenticationOptions
LdapOptions *ldapclient.Options
OpenPitrixOptions *openpitrix.Options
NetworkOptions *network.Options
MultiClusterOptions *multicluster.Options
ServiceMeshOptions *servicemesh.Options
LeaderElect bool
LeaderElection *leaderelection.LeaderElectionConfig
WebhookCertDir string
}
func NewKubeSphereControllerManagerOptions() *KubeSphereControllerManagerOptions {
s := &KubeSphereControllerManagerOptions{
KubernetesOptions: k8s.NewKubernetesOptions(),
DevopsOptions: jenkins.NewDevopsOptions(),
S3Options: s3.NewS3Options(),
LdapOptions: ldapclient.NewOptions(),
OpenPitrixOptions: openpitrix.NewOptions(),
NetworkOptions: network.NewNetworkOptions(),
MultiClusterOptions: multicluster.NewOptions(),
ServiceMeshOptions: servicemesh.NewServiceMeshOptions(),
AuthenticationOptions: authoptions.NewAuthenticateOptions(),
LeaderElection: &leaderelection.LeaderElectionConfig{
LeaseDuration: 30 * time.Second,
RenewDeadline: 15 * time.Second,
RetryPeriod: 5 * time.Second,
},
LeaderElect: false,
WebhookCertDir: "",
}
return s
}
func (s *KubeSphereControllerManagerOptions) Flags() cliflag.NamedFlagSets {
fss := cliflag.NamedFlagSets{}
s.KubernetesOptions.AddFlags(fss.FlagSet("kubernetes"), s.KubernetesOptions)
s.DevopsOptions.AddFlags(fss.FlagSet("devops"), s.DevopsOptions)
s.S3Options.AddFlags(fss.FlagSet("s3"), s.S3Options)
s.AuthenticationOptions.AddFlags(fss.FlagSet("authentication"), s.AuthenticationOptions)
s.LdapOptions.AddFlags(fss.FlagSet("ldap"), s.LdapOptions)
s.OpenPitrixOptions.AddFlags(fss.FlagSet("openpitrix"), s.OpenPitrixOptions)
s.NetworkOptions.AddFlags(fss.FlagSet("network"), s.NetworkOptions)
s.MultiClusterOptions.AddFlags(fss.FlagSet("multicluster"), s.MultiClusterOptions)
s.ServiceMeshOptions.AddFlags(fss.FlagSet("servicemesh"), s.ServiceMeshOptions)
fs := fss.FlagSet("leaderelection")
s.bindLeaderElectionFlags(s.LeaderElection, fs)
fs.BoolVar(&s.LeaderElect, "leader-elect", s.LeaderElect, ""+
"Whether to enable leader election. This field should be enabled when controller manager"+
"deployed with multiple replicas.")
fs.StringVar(&s.WebhookCertDir, "webhook-cert-dir", s.WebhookCertDir, ""+
"Certificate directory used to setup webhooks, need tls.crt and tls.key placed inside."+
"if not set, webhook server would look up the server key and certificate in"+
"{TempDir}/k8s-webhook-server/serving-certs")
kfs := fss.FlagSet("klog")
local := flag.NewFlagSet("klog", flag.ExitOnError)
klog.InitFlags(local)
local.VisitAll(func(fl *flag.Flag) {
fl.Name = strings.Replace(fl.Name, "_", "-", -1)
kfs.AddGoFlag(fl)
})
return fss
}
func (s *KubeSphereControllerManagerOptions) Validate() []error {
var errs []error
errs = append(errs, s.DevopsOptions.Validate()...)
errs = append(errs, s.KubernetesOptions.Validate()...)
errs = append(errs, s.S3Options.Validate()...)
errs = append(errs, s.OpenPitrixOptions.Validate()...)
errs = append(errs, s.NetworkOptions.Validate()...)
errs = append(errs, s.LdapOptions.Validate()...)
return errs
}
func (s *KubeSphereControllerManagerOptions) bindLeaderElectionFlags(l *leaderelection.LeaderElectionConfig, fs *pflag.FlagSet) {
fs.DurationVar(&l.LeaseDuration, "leader-elect-lease-duration", l.LeaseDuration, ""+
"The duration that non-leader candidates will wait after observing a leadership "+
"renewal until attempting to acquire leadership of a led but unrenewed leader "+
"slot. This is effectively the maximum duration that a leader can be stopped "+
"before it is replaced by another candidate. This is only applicable if leader "+
"election is enabled.")
fs.DurationVar(&l.RenewDeadline, "leader-elect-renew-deadline", l.RenewDeadline, ""+
"The interval between attempts by the acting master to renew a leadership slot "+
"before it stops leading. This must be less than or equal to the lease duration. "+
"This is only applicable if leader election is enabled.")
fs.DurationVar(&l.RetryPeriod, "leader-elect-retry-period", l.RetryPeriod, ""+
"The duration the clients should wait between attempting acquisition and renewal "+
"of a leadership. This is only applicable if leader election is enabled.")
}

View File

@@ -0,0 +1,242 @@
/*
Copyright 2019 The KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package app
import (
"fmt"
"github.com/spf13/cobra"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
cliflag "k8s.io/component-base/cli/flag"
"k8s.io/klog"
"k8s.io/klog/klogr"
"kubesphere.io/kubesphere/cmd/controller-manager/app/options"
"kubesphere.io/kubesphere/pkg/apis"
controllerconfig "kubesphere.io/kubesphere/pkg/apiserver/config"
"kubesphere.io/kubesphere/pkg/controller/namespace"
"kubesphere.io/kubesphere/pkg/controller/network/nsnetworkpolicy"
"kubesphere.io/kubesphere/pkg/controller/user"
"kubesphere.io/kubesphere/pkg/controller/workspace"
"kubesphere.io/kubesphere/pkg/informers"
"kubesphere.io/kubesphere/pkg/simple/client/devops"
"kubesphere.io/kubesphere/pkg/simple/client/devops/jenkins"
"kubesphere.io/kubesphere/pkg/simple/client/k8s"
ldapclient "kubesphere.io/kubesphere/pkg/simple/client/ldap"
"kubesphere.io/kubesphere/pkg/simple/client/openpitrix"
"kubesphere.io/kubesphere/pkg/simple/client/s3"
"kubesphere.io/kubesphere/pkg/utils/term"
"os"
application "sigs.k8s.io/application/controllers"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/runtime/signals"
"sigs.k8s.io/controller-runtime/pkg/webhook"
)
func NewControllerManagerCommand() *cobra.Command {
s := options.NewKubeSphereControllerManagerOptions()
conf, err := controllerconfig.TryLoadFromDisk()
if err == nil {
// make sure LeaderElection is not nil
s = &options.KubeSphereControllerManagerOptions{
KubernetesOptions: conf.KubernetesOptions,
DevopsOptions: conf.DevopsOptions,
S3Options: conf.S3Options,
AuthenticationOptions: conf.AuthenticationOptions,
LdapOptions: conf.LdapOptions,
OpenPitrixOptions: conf.OpenPitrixOptions,
NetworkOptions: conf.NetworkOptions,
MultiClusterOptions: conf.MultiClusterOptions,
ServiceMeshOptions: conf.ServiceMeshOptions,
LeaderElection: s.LeaderElection,
LeaderElect: s.LeaderElect,
WebhookCertDir: s.WebhookCertDir,
}
} else {
klog.Fatal("Failed to load configuration from disk", err)
}
cmd := &cobra.Command{
Use: "controller-manager",
Long: `KubeSphere controller manager is a daemon that`,
Run: func(cmd *cobra.Command, args []string) {
if errs := s.Validate(); len(errs) != 0 {
klog.Error(utilerrors.NewAggregate(errs))
os.Exit(1)
}
if err = run(s, signals.SetupSignalHandler()); err != nil {
klog.Error(err)
os.Exit(1)
}
},
SilenceUsage: true,
}
fs := cmd.Flags()
namedFlagSets := s.Flags()
for _, f := range namedFlagSets.FlagSets {
fs.AddFlagSet(f)
}
usageFmt := "Usage:\n %s\n"
cols, _, _ := term.TerminalSize(cmd.OutOrStdout())
cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) {
_, _ = fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine())
cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols)
})
return cmd
}
func run(s *options.KubeSphereControllerManagerOptions, stopCh <-chan struct{}) error {
kubernetesClient, err := k8s.NewKubernetesClient(s.KubernetesOptions)
if err != nil {
klog.Errorf("Failed to create kubernetes clientset %v", err)
return err
}
var devopsClient devops.Interface
if s.DevopsOptions != nil && len(s.DevopsOptions.Host) != 0 {
devopsClient, err = jenkins.NewDevopsClient(s.DevopsOptions)
if err != nil {
return fmt.Errorf("failed to connect jenkins, please check jenkins status, error: %v", err)
}
}
var ldapClient ldapclient.Interface
if s.LdapOptions == nil || len(s.LdapOptions.Host) == 0 {
return fmt.Errorf("ldap service address MUST not be empty")
} else {
if s.LdapOptions.Host == ldapclient.FAKE_HOST { // for debug only
ldapClient = ldapclient.NewSimpleLdap()
} else {
ldapClient, err = ldapclient.NewLdapClient(s.LdapOptions, stopCh)
if err != nil {
return fmt.Errorf("failed to connect to ldap service, please check ldap status, error: %v", err)
}
}
}
var openpitrixClient openpitrix.Client
if s.OpenPitrixOptions != nil && !s.OpenPitrixOptions.IsEmpty() {
openpitrixClient, err = openpitrix.NewClient(s.OpenPitrixOptions)
if err != nil {
return fmt.Errorf("failed to connect to openpitrix, please check openpitrix status, error: %v", err)
}
}
var s3Client s3.Interface
if s.S3Options != nil && len(s.S3Options.Endpoint) != 0 {
s3Client, err = s3.NewS3Client(s.S3Options)
if err != nil {
return fmt.Errorf("failed to connect to s3, please check s3 service status, error: %v", err)
}
}
informerFactory := informers.NewInformerFactories(
kubernetesClient.Kubernetes(),
kubernetesClient.KubeSphere(),
kubernetesClient.Istio(),
kubernetesClient.Application(),
kubernetesClient.Snapshot(),
kubernetesClient.ApiExtensions())
mgrOptions := manager.Options{
CertDir: s.WebhookCertDir,
Port: 8443,
}
if s.LeaderElect {
mgrOptions = manager.Options{
CertDir: s.WebhookCertDir,
Port: 8443,
LeaderElection: s.LeaderElect,
LeaderElectionNamespace: "kubesphere-system",
LeaderElectionID: "ks-controller-manager-leader-election",
LeaseDuration: &s.LeaderElection.LeaseDuration,
RetryPeriod: &s.LeaderElection.RetryPeriod,
RenewDeadline: &s.LeaderElection.RenewDeadline,
}
}
klog.V(0).Info("setting up manager")
// Use 8443 instead of 443 cause we need root permission to bind port 443
mgr, err := manager.New(kubernetesClient.Config(), mgrOptions)
if err != nil {
klog.Fatalf("unable to set up overall controller manager: %v", err)
}
if err = apis.AddToScheme(mgr.GetScheme()); err != nil {
klog.Fatalf("unable add APIs to scheme: %v", err)
}
err = workspace.Add(mgr)
if err != nil {
klog.Fatal("Unable to create workspace controller")
}
err = namespace.Add(mgr)
if err != nil {
klog.Fatal("Unable to create namespace controller")
}
err = (&application.ApplicationReconciler{
Scheme: mgr.GetScheme(),
Client: mgr.GetClient(),
Mapper: mgr.GetRESTMapper(),
Log: klogr.New(),
}).SetupWithManager(mgr)
if err != nil {
klog.Fatal("Unable to create application controller")
}
// TODO(jeff): refactor config with CRD
servicemeshEnabled := s.ServiceMeshOptions != nil && len(s.ServiceMeshOptions.IstioPilotHost) != 0
if err = addControllers(mgr,
kubernetesClient,
informerFactory,
devopsClient,
s3Client,
ldapClient,
s.AuthenticationOptions,
openpitrixClient,
s.MultiClusterOptions.Enable,
s.NetworkOptions,
servicemeshEnabled,
s.AuthenticationOptions.KubectlImage, stopCh); err != nil {
klog.Fatalf("unable to register controllers to the manager: %v", err)
}
// Start cache data after all informer is registered
klog.V(0).Info("Starting cache resource from apiserver...")
informerFactory.Start(stopCh)
// Setup webhooks
klog.V(2).Info("setting up webhook server")
hookServer := mgr.GetWebhookServer()
klog.V(2).Info("registering webhooks to the webhook server")
hookServer.Register("/validate-email-iam-kubesphere-io-v1alpha2-user", &webhook.Admission{Handler: &user.EmailValidator{Client: mgr.GetClient()}})
hookServer.Register("/validate-nsnp-kubesphere-io-v1alpha1-network", &webhook.Admission{Handler: &nsnetworkpolicy.NSNPValidator{Client: mgr.GetClient()}})
klog.V(0).Info("Starting the controllers.")
if err = mgr.Start(stopCh); err != nil {
klog.Fatalf("unable to run the manager: %v", err)
}
return nil
}

View File

@@ -0,0 +1,30 @@
/*
Copyright 2020 KubeSphere Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"kubesphere.io/kubesphere/cmd/controller-manager/app"
"os"
)
func main() {
command := app.NewControllerManagerCommand()
if err := command.Execute(); err != nil {
os.Exit(1)
}
}

View File

@@ -0,0 +1,31 @@
/*
Copyright 2019 The KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"kubesphere.io/kubesphere/cmd/ks-apiserver/app"
"log"
)
func main() {
cmd := app.NewAPIServerCommand()
if err := cmd.Execute(); err != nil {
log.Fatalln(err)
}
}

View File

@@ -0,0 +1,211 @@
/*
Copyright 2020 KubeSphere Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package options
import (
"crypto/tls"
"flag"
"fmt"
cliflag "k8s.io/component-base/cli/flag"
"k8s.io/klog"
"kubesphere.io/kubesphere/pkg/apiserver"
apiserverconfig "kubesphere.io/kubesphere/pkg/apiserver/config"
"kubesphere.io/kubesphere/pkg/informers"
genericoptions "kubesphere.io/kubesphere/pkg/server/options"
auditingclient "kubesphere.io/kubesphere/pkg/simple/client/auditing/elasticsearch"
"kubesphere.io/kubesphere/pkg/simple/client/cache"
"kubesphere.io/kubesphere/pkg/simple/client/devops/jenkins"
eventsclient "kubesphere.io/kubesphere/pkg/simple/client/events/elasticsearch"
"kubesphere.io/kubesphere/pkg/simple/client/k8s"
esclient "kubesphere.io/kubesphere/pkg/simple/client/logging/elasticsearch"
"kubesphere.io/kubesphere/pkg/simple/client/monitoring/prometheus"
"kubesphere.io/kubesphere/pkg/simple/client/openpitrix"
"kubesphere.io/kubesphere/pkg/simple/client/s3"
fakes3 "kubesphere.io/kubesphere/pkg/simple/client/s3/fake"
"kubesphere.io/kubesphere/pkg/simple/client/sonarqube"
"net/http"
"strings"
)
type ServerRunOptions struct {
ConfigFile string
GenericServerRunOptions *genericoptions.ServerRunOptions
*apiserverconfig.Config
//
DebugMode bool
}
func NewServerRunOptions() *ServerRunOptions {
s := &ServerRunOptions{
GenericServerRunOptions: genericoptions.NewServerRunOptions(),
Config: apiserverconfig.New(),
}
return s
}
func (s *ServerRunOptions) Flags() (fss cliflag.NamedFlagSets) {
fs := fss.FlagSet("generic")
fs.BoolVar(&s.DebugMode, "debug", false, "Don't enable this if you don't know what it means.")
s.GenericServerRunOptions.AddFlags(fs, s.GenericServerRunOptions)
s.KubernetesOptions.AddFlags(fss.FlagSet("kubernetes"), s.KubernetesOptions)
s.AuthenticationOptions.AddFlags(fss.FlagSet("authentication"), s.AuthenticationOptions)
s.AuthorizationOptions.AddFlags(fss.FlagSet("authorization"), s.AuthorizationOptions)
s.DevopsOptions.AddFlags(fss.FlagSet("devops"), s.DevopsOptions)
s.SonarQubeOptions.AddFlags(fss.FlagSet("sonarqube"), s.SonarQubeOptions)
s.RedisOptions.AddFlags(fss.FlagSet("redis"), s.RedisOptions)
s.S3Options.AddFlags(fss.FlagSet("s3"), s.S3Options)
s.OpenPitrixOptions.AddFlags(fss.FlagSet("openpitrix"), s.OpenPitrixOptions)
s.NetworkOptions.AddFlags(fss.FlagSet("network"), s.NetworkOptions)
s.ServiceMeshOptions.AddFlags(fss.FlagSet("servicemesh"), s.ServiceMeshOptions)
s.MonitoringOptions.AddFlags(fss.FlagSet("monitoring"), s.MonitoringOptions)
s.LoggingOptions.AddFlags(fss.FlagSet("logging"), s.LoggingOptions)
s.MultiClusterOptions.AddFlags(fss.FlagSet("multicluster"), s.MultiClusterOptions)
s.EventsOptions.AddFlags(fss.FlagSet("events"), s.EventsOptions)
s.AuditingOptions.AddFlags(fss.FlagSet("auditing"), s.AuditingOptions)
fs = fss.FlagSet("klog")
local := flag.NewFlagSet("klog", flag.ExitOnError)
klog.InitFlags(local)
local.VisitAll(func(fl *flag.Flag) {
fl.Name = strings.Replace(fl.Name, "_", "-", -1)
fs.AddGoFlag(fl)
})
return fss
}
const fakeInterface string = "FAKE"
// NewAPIServer creates an APIServer instance using given options
func (s *ServerRunOptions) NewAPIServer(stopCh <-chan struct{}) (*apiserver.APIServer, error) {
apiServer := &apiserver.APIServer{
Config: s.Config,
}
kubernetesClient, err := k8s.NewKubernetesClient(s.KubernetesOptions)
if err != nil {
return nil, err
}
apiServer.KubernetesClient = kubernetesClient
informerFactory := informers.NewInformerFactories(kubernetesClient.Kubernetes(), kubernetesClient.KubeSphere(),
kubernetesClient.Istio(), kubernetesClient.Application(), kubernetesClient.Snapshot(), kubernetesClient.ApiExtensions())
apiServer.InformerFactory = informerFactory
if s.MonitoringOptions == nil || len(s.MonitoringOptions.Endpoint) == 0 {
return nil, fmt.Errorf("moinitoring service address in configuration MUST not be empty, please check configmap/kubesphere-config in kubesphere-system namespace")
} else {
monitoringClient, err := prometheus.NewPrometheus(s.MonitoringOptions)
if err != nil {
return nil, fmt.Errorf("failed to connect to prometheus, please check prometheus status, error: %v", err)
}
apiServer.MonitoringClient = monitoringClient
}
if s.LoggingOptions.Host != "" {
loggingClient, err := esclient.NewElasticsearch(s.LoggingOptions)
if err != nil {
return nil, fmt.Errorf("failed to connect to elasticsearch, please check elasticsearch status, error: %v", err)
}
apiServer.LoggingClient = loggingClient
}
if s.S3Options.Endpoint != "" {
if s.S3Options.Endpoint == fakeInterface && s.DebugMode {
apiServer.S3Client = fakes3.NewFakeS3()
} else {
s3Client, err := s3.NewS3Client(s.S3Options)
if err != nil {
return nil, fmt.Errorf("failed to connect to s3, please check s3 service status, error: %v", err)
}
apiServer.S3Client = s3Client
}
}
if s.DevopsOptions.Host != "" {
devopsClient, err := jenkins.NewDevopsClient(s.DevopsOptions)
if err != nil {
return nil, fmt.Errorf("failed to connect to jenkins, please check jenkins status, error: %v", err)
}
apiServer.DevopsClient = devopsClient
}
if s.SonarQubeOptions.Host != "" {
sonarClient, err := sonarqube.NewSonarQubeClient(s.SonarQubeOptions)
if err != nil {
return nil, fmt.Errorf("failed to connecto to sonarqube, please check sonarqube status, error: %v", err)
}
apiServer.SonarClient = sonarqube.NewSonar(sonarClient.SonarQube())
}
var cacheClient cache.Interface
if s.RedisOptions == nil || len(s.RedisOptions.Host) == 0 {
return nil, fmt.Errorf("redis service address MUST not be empty, please check configmap/kubesphere-config in kubesphere-system namespace")
} else {
if s.RedisOptions.Host == fakeInterface && s.DebugMode {
apiServer.CacheClient = cache.NewSimpleCache()
} else {
cacheClient, err = cache.NewRedisClient(s.RedisOptions, stopCh)
if err != nil {
return nil, fmt.Errorf("failed to connect to redis service, please check redis status, error: %v", err)
}
apiServer.CacheClient = cacheClient
}
}
if s.EventsOptions.Host != "" {
eventsClient, err := eventsclient.NewClient(s.EventsOptions)
if err != nil {
return nil, fmt.Errorf("failed to connect to elasticsearch, please check elasticsearch status, error: %v", err)
}
apiServer.EventsClient = eventsClient
}
if s.AuditingOptions.Host != "" {
auditingClient, err := auditingclient.NewClient(s.AuditingOptions)
if err != nil {
return nil, fmt.Errorf("failed to connect to elasticsearch, please check elasticsearch status, error: %v", err)
}
apiServer.AuditingClient = auditingClient
}
if s.OpenPitrixOptions != nil && !s.OpenPitrixOptions.IsEmpty() {
opClient, err := openpitrix.NewClient(s.OpenPitrixOptions)
if err != nil {
return nil, fmt.Errorf("failed to connect to openpitrix, please check openpitrix status, error: %v", err)
}
apiServer.OpenpitrixClient = opClient
}
server := &http.Server{
Addr: fmt.Sprintf(":%d", s.GenericServerRunOptions.InsecurePort),
}
if s.GenericServerRunOptions.SecurePort != 0 {
certificate, err := tls.LoadX509KeyPair(s.GenericServerRunOptions.TlsCertFile, s.GenericServerRunOptions.TlsPrivateKey)
if err != nil {
return nil, err
}
server.TLSConfig.Certificates = []tls.Certificate{certificate}
}
apiServer.Server = server
return apiServer, nil
}

View File

@@ -0,0 +1,39 @@
/*
Copyright 2020 KubeSphere Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package options
// Validate validates server run options, to find
// options' misconfiguration
func (s *ServerRunOptions) Validate() []error {
var errors []error
errors = append(errors, s.GenericServerRunOptions.Validate()...)
errors = append(errors, s.DevopsOptions.Validate()...)
errors = append(errors, s.KubernetesOptions.Validate()...)
errors = append(errors, s.ServiceMeshOptions.Validate()...)
errors = append(errors, s.MonitoringOptions.Validate()...)
errors = append(errors, s.SonarQubeOptions.Validate()...)
errors = append(errors, s.S3Options.Validate()...)
errors = append(errors, s.OpenPitrixOptions.Validate()...)
errors = append(errors, s.NetworkOptions.Validate()...)
errors = append(errors, s.LoggingOptions.Validate()...)
errors = append(errors, s.AuthorizationOptions.Validate()...)
errors = append(errors, s.EventsOptions.Validate()...)
errors = append(errors, s.AuditingOptions.Validate()...)
return errors
}

View File

@@ -0,0 +1,113 @@
/*
Copyright 2019 The KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package app
import (
"fmt"
kconfig "github.com/kiali/kiali/config"
"github.com/spf13/cobra"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
cliflag "k8s.io/component-base/cli/flag"
"kubesphere.io/kubesphere/cmd/ks-apiserver/app/options"
apiserverconfig "kubesphere.io/kubesphere/pkg/apiserver/config"
"kubesphere.io/kubesphere/pkg/utils/signals"
"kubesphere.io/kubesphere/pkg/utils/term"
tracing "kubesphere.io/kubesphere/pkg/kapis/servicemesh/metrics/v1alpha2"
)
func NewAPIServerCommand() *cobra.Command {
s := options.NewServerRunOptions()
// Load configuration from file
conf, err := apiserverconfig.TryLoadFromDisk()
if err == nil {
s = &options.ServerRunOptions{
GenericServerRunOptions: s.GenericServerRunOptions,
Config: conf,
}
}
cmd := &cobra.Command{
Use: "ks-apiserver",
Long: `The KubeSphere API server validates and configures data for the API objects.
The API Server services REST operations and provides the frontend to the
cluster's shared state through which all other components interact.`,
RunE: func(cmd *cobra.Command, args []string) error {
if errs := s.Validate(); len(errs) != 0 {
return utilerrors.NewAggregate(errs)
}
return Run(s, signals.SetupSignalHandler())
},
SilenceUsage: true,
}
fs := cmd.Flags()
namedFlagSets := s.Flags()
for _, f := range namedFlagSets.FlagSets {
fs.AddFlagSet(f)
}
usageFmt := "Usage:\n %s\n"
cols, _, _ := term.TerminalSize(cmd.OutOrStdout())
cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) {
fmt.Fprintf(cmd.OutOrStdout(), "%s\n\n"+usageFmt, cmd.Long, cmd.UseLine())
cliflag.PrintSections(cmd.OutOrStdout(), namedFlagSets, cols)
})
return cmd
}
func Run(s *options.ServerRunOptions, stopCh <-chan struct{}) error {
initializeServicemeshConfig(s)
apiserver, err := s.NewAPIServer(stopCh)
if err != nil {
return err
}
err = apiserver.PrepareRun(stopCh)
if err != nil {
return nil
}
return apiserver.Run(stopCh)
}
func initializeServicemeshConfig(s *options.ServerRunOptions) {
// Initialize kiali config
config := kconfig.NewConfig()
// Config jaeger query endpoint address
if s.ServiceMeshOptions != nil && len(s.ServiceMeshOptions.JaegerQueryHost) != 0 {
tracing.JaegerQueryUrl = s.ServiceMeshOptions.JaegerQueryHost
}
// Exclude system namespaces
config.API.Namespaces.Exclude = []string{"istio-system", "kubesphere*", "kube*"}
config.InCluster = true
// Set default prometheus service url
config.ExternalServices.PrometheusServiceURL = s.ServiceMeshOptions.ServicemeshPrometheusHost
config.ExternalServices.PrometheusCustomMetricsURL = config.ExternalServices.PrometheusServiceURL
// Set istio pilot discovery service url
config.ExternalServices.Istio.UrlServiceVersion = s.ServiceMeshOptions.IstioPilotHost
kconfig.Set(config)
}

View File

@@ -1,40 +0,0 @@
/*
Copyright 2018 The KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"github.com/spf13/pflag"
"kubesphere.io/kubesphere/pkg/app"
"kubesphere.io/kubesphere/pkg/logs"
"kubesphere.io/kubesphere/pkg/options"
"kubesphere.io/kubesphere/pkg/version"
)
func main() {
options.AddFlags(pflag.CommandLine)
pflag.Parse()
logs.InitLogs()
defer logs.FlushLogs()
version.PrintAndExitIfRequested()
app.Run()
}

View File

@@ -1,14 +0,0 @@
# KubeSphere Code of Conduct
KubeSphere follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
# Best practice of committing code
Besides following above conduct from CNCF, we also hope every contributor in this project could help us to improve the quality of code, something you should know before checking in any new code:
- As gopher, make sure you already read [the conduct of Go language](https://golang.org/conduct) and [the instruction of writting Go](https://golang.org/doc/effective_go.html).
- Fork the project under your account and make the changes you want there.
- Execute 'go fmt' for every piece of new code.
- Every pulling request(PR) would be better constructed with only one commit, this could help code reviewer to go through your code efficiently, also helpful for every follower of this project to understand what happens in this PR. If you need to make any further code change to address the comments from reviewers, which means some new commits will be generated under this PR, you need to use 'git rebase' to combine those commits together.
- Every PR should only solve one problem or provide one feature, don't put several different fixes into one PR.
- At lease two code reviewers should involve into code reviewing process.
- Please introduce new third-party packages as little as possible to reduce the vendor dependency of this project. For example, don't import a full unit converting package but only use one function from it. For this case, you'd better write that function by yourself.
- more.

View File

@@ -0,0 +1,114 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: agents.cluster.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.Paused
name: Paused
type: bool
group: cluster.kubesphere.io
names:
kind: Agent
listKind: AgentList
plural: agents
singular: agent
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: Agent is the Schema for the agents API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: AgentSpec defines the desired state of Agent
properties:
kubernetesAPIServerPort:
description: KubeAPIServerPort is the port which listens for forwarding
kube-apiserver traffic
type: integer
kubesphereAPIServerPort:
description: KubeSphereAPIServerPort is the port which listens for forwarding
kubesphere apigateway traffic
type: integer
paused:
description: Indicates that the agent is paused.
type: boolean
proxy:
description: Proxy address
type: string
token:
description: Token used by agents to connect to proxy.
type: string
type: object
status:
description: AgentStatus defines the observed state of Agent
properties:
conditions:
description: Represents the latest available observations of a agent's
current state.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of AgentCondition
type: string
required:
- status
type: object
type: array
kubeconfig:
description: Issued new kubeconfig by proxy server
format: byte
type: string
ping:
description: Represents the connection quality, in ms
format: int64
type: integer
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,168 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: clusters.cluster.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.joinFederation
name: Federated
type: boolean
- JSONPath: .spec.provider
name: Provider
type: string
- JSONPath: .spec.enable
name: Active
type: boolean
- JSONPath: .status.kubernetesVersion
name: Version
type: string
group: cluster.kubesphere.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: Cluster is the schema for the clusters API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
connection:
description: Connection holds info to connect to the member cluster
properties:
kubeconfig:
description: KubeConfig content used to connect to cluster api server
Should provide this field explicitly if connection type is direct.
Will be populated by ks-proxy if connection type is proxy.
format: byte
type: string
kubernetesAPIEndpoint:
description: Kubernetes API Server endpoint. This can be a hostname,
hostname:port, IP or IP:port. Should provide this field explicitly
if connection type is direct. Will be populated by ks-apiserver
if connection type is proxy.
type: string
kubernetesAPIServerPort:
description: KubeAPIServerPort is the port which listens for forwarding
kube-apiserver traffic Only applicable when connection type is
proxy.
type: integer
kubesphereAPIEndpoint:
description: KubeSphere API Server endpoint. This can be a hostname,
hostname:port, IP or IP:port. Should provide this field explicitly
if connection type is direct. Will be populated by ks-apiserver
if connection type is proxy.
type: string
kubesphereAPIServerPort:
description: KubeSphereAPIServerPort is the port which listens for
forwarding kubesphere apigateway traffic Only applicable when
connection type is proxy.
type: integer
token:
description: Token used by agents of member cluster to connect to
host cluster proxy. This field is populated by apiserver only
if connection type is proxy.
type: string
type:
description: type defines how host cluster will connect to host
cluster ConnectionTypeDirect means direct connection, this requires kubeconfig
and kubesphere apiserver endpoint provided ConnectionTypeProxy
means using kubesphere proxy, no kubeconfig or kubesphere apiserver
endpoint required
type: string
type: object
enable:
description: Desired state of the cluster
type: boolean
joinFederation:
description: Join cluster as a kubefed cluster
type: boolean
provider:
description: Provider of the cluster, this field is just for description
type: string
type: object
status:
properties:
conditions:
description: Represents the latest available observations of a cluster's
current state.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of the condition
type: string
required:
- status
- type
type: object
type: array
kubernetesVersion:
description: GitVersion of the kubernetes cluster, this field is populated
by cluster controller
type: string
nodeCount:
description: Count of the kubernetes cluster nodes This field may not
reflect the instant status of the cluster.
type: integer
region:
description: Region is the name of the region in which all of the nodes
in the cluster exist. e.g. 'us-east1'.
type: string
zones:
description: Zones are the names of availability zones in which the
nodes of the cluster exist, e.g. 'us-east1-a'.
items:
type: string
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,59 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: devopsprojects.devops.kubesphere.io
spec:
group: devops.kubesphere.io
names:
categories:
- devops
kind: DevOpsProject
listKind: DevOpsProjectList
plural: devopsprojects
singular: devopsproject
scope: Cluster
validation:
openAPIV3Schema:
description: DevOpsProject is the Schema for the devopsprojects API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: DevOpsProjectSpec defines the desired state of DevOpsProject
type: object
status:
description: DevOpsProjectStatus defines the observed state of DevOpsProject
properties:
adminNamespace:
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
of cluster Important: Run "make" to regenerate code after modifying
this file'
type: string
type: object
type: object
version: v1alpha3
versions:
- name: v1alpha3
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,260 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: pipelines.devops.kubesphere.io
spec:
group: devops.kubesphere.io
names:
kind: Pipeline
listKind: PipelineList
plural: pipelines
singular: pipeline
scope: Namespaced
validation:
openAPIV3Schema:
description: Pipeline is the Schema for the pipelines API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: PipelineSpec defines the desired state of Pipeline
properties:
multi_branch_pipeline:
properties:
bitbucket_server_source:
properties:
api_uri:
type: string
credential_id:
type: string
discover_branches:
type: integer
discover_pr_from_forks:
properties:
strategy:
type: integer
trust:
type: integer
type: object
discover_pr_from_origin:
type: integer
git_clone_option:
properties:
depth:
type: integer
shallow:
type: boolean
timeout:
type: integer
type: object
owner:
type: string
regex_filter:
type: string
repo:
type: string
scm_id:
type: string
type: object
descriptio:
type: string
discarder:
properties:
days_to_keep:
type: string
num_to_keep:
type: string
type: object
git_source:
properties:
credential_id:
type: string
discover_branches:
type: boolean
git_clone_option:
properties:
depth:
type: integer
shallow:
type: boolean
timeout:
type: integer
type: object
regex_filter:
type: string
scm_id:
type: string
url:
type: string
type: object
github_source:
properties:
api_uri:
type: string
credential_id:
type: string
discover_branches:
type: integer
discover_pr_from_forks:
properties:
strategy:
type: integer
trust:
type: integer
type: object
discover_pr_from_origin:
type: integer
git_clone_option:
properties:
depth:
type: integer
shallow:
type: boolean
timeout:
type: integer
type: object
owner:
type: string
regex_filter:
type: string
repo:
type: string
scm_id:
type: string
type: object
multibranch_job_trigger:
properties:
create_action_job_to_trigger:
type: string
delete_action_job_to_trigger:
type: string
type: object
name:
type: string
script_path:
type: string
single_svn_source:
properties:
credential_id:
type: string
remote:
type: string
scm_id:
type: string
type: object
source_type:
type: string
svn_source:
properties:
credential_id:
type: string
excludes:
type: string
includes:
type: string
remote:
type: string
scm_id:
type: string
type: object
timer_trigger:
properties:
cron:
description: user in no scm job
type: string
interval:
description: use in multi-branch job
type: string
type: object
required:
- name
- script_path
- source_type
type: object
pipeline:
properties:
descriptio:
type: string
disable_concurrent:
type: boolean
discarder:
properties:
days_to_keep:
type: string
num_to_keep:
type: string
type: object
jenkinsfile:
type: string
name:
type: string
parameters:
items:
properties:
default_value:
type: string
description:
type: string
name:
type: string
type:
type: string
required:
- name
- type
type: object
type: array
remote_trigger:
properties:
token:
type: string
type: object
timer_trigger:
properties:
cron:
description: user in no scm job
type: string
interval:
description: use in multi-branch job
type: string
type: object
required:
- name
type: object
type:
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
Important: Run "make" to regenerate code after modifying this file'
type: string
required:
- type
type: object
status:
description: PipelineStatus defines the observed state of Pipeline
type: object
type: object
version: v1alpha3
versions:
- name: v1alpha3
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,86 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2ibinaries.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.fileName
name: FileName
type: string
- JSONPath: .spec.md5
name: MD5
type: string
- JSONPath: .spec.size
name: Size
type: string
- JSONPath: .status.phase
name: Phase
type: string
group: devops.kubesphere.io
names:
kind: S2iBinary
listKind: S2iBinaryList
plural: s2ibinaries
singular: s2ibinary
scope: Namespaced
subresources: {}
validation:
openAPIV3Schema:
description: S2iBinary is the Schema for the s2ibinaries API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iBinarySpec defines the desired state of S2iBinary
properties:
downloadURL:
description: DownloadURL in KubeSphere
type: string
fileName:
description: FileName is filename of binary
type: string
md5:
description: MD5 is Binary's MD5 Hash
type: string
size:
description: Size is the file size of file
type: string
uploadTimeStamp:
description: UploadTime is last upload time
format: date-time
type: string
type: object
status:
description: S2iBinaryStatus defines the observed state of S2iBinary
properties:
phase:
description: Phase is status of S2iBinary . Possible value is "Ready","UnableToDownload"
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,578 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2ibuilders.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .status.runCount
name: RunCount
type: integer
- JSONPath: .status.lastRunState
name: LastRunState
type: string
- JSONPath: .status.lastRunName
name: LastRunName
type: string
- JSONPath: .status.lastRunStartTime
name: LastRunStartTime
type: date
group: devops.kubesphere.io
names:
kind: S2iBuilder
listKind: S2iBuilderList
plural: s2ibuilders
shortNames:
- s2ib
singular: s2ibuilder
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: S2iBuilder is the Schema for the s2ibuilders API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iBuilderSpec defines the desired state of S2iBuilder
properties:
config:
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
Important: Run "make" to regenerate code after modifying this file'
properties:
addHost:
description: AddHost Add a line to /etc/hosts for test purpose or
private use in LAN. Its format is host:IP,muliple hosts can be
added by using multiple --add-host
items:
type: string
type: array
asDockerfile:
description: AsDockerfile indicates the path where the Dockerfile
should be written instead of building a new image.
type: string
assembleUser:
description: AssembleUser specifies the user to run the assemble
script in container
type: string
blockOnBuild:
description: BlockOnBuild prevents s2i from performing a docker
build operation if one is necessary to execute ONBUILD commands,
or to layer source code into the container for images that don't
have a tar binary available, if the image contains ONBUILD commands
that would be executed.
type: boolean
branchExpression:
description: Regular expressions, ignoring names that do not match
the provided regular expression
type: string
buildVolumes:
description: BuildVolumes specifies a list of volumes to mount to
container running the build.
items:
type: string
type: array
builderBaseImageVersion:
description: BuilderBaseImageVersion provides optional version information
about the builder base image.
type: string
builderImage:
description: BuilderImage describes which image is used for building
the result images.
type: string
builderImageVersion:
description: BuilderImageVersion provides optional version information
about the builder image.
type: string
builderPullPolicy:
description: BuilderPullPolicy specifies when to pull the builder
image
type: string
callbackUrl:
description: CallbackURL is a URL which is called upon successful
build to inform about that fact.
type: string
cgroupLimits:
description: CGroupLimits describes the cgroups limits that will
be applied to any containers run by s2i.
properties:
cpuPeriod:
format: int64
type: integer
cpuQuota:
format: int64
type: integer
cpuShares:
format: int64
type: integer
memoryLimitBytes:
format: int64
type: integer
memorySwap:
format: int64
type: integer
parent:
type: string
required:
- cpuPeriod
- cpuQuota
- cpuShares
- memoryLimitBytes
- memorySwap
- parent
type: object
contextDir:
description: Specify a relative directory inside the application
repository that should be used as a root directory for the application.
type: string
description:
description: Description is a result image description label. The
default is no description.
type: string
destination:
description: Destination specifies a location where the untar operation
will place its artifacts.
type: string
displayName:
description: DisplayName is a result image display-name label. This
defaults to the output image name.
type: string
dockerConfig:
description: DockerConfig describes how to access host docker daemon.
properties:
caFile:
description: CAFile is the certificate authority file path for
a TLS connection
type: string
certFile:
description: CertFile is the certificate file path for a TLS
connection
type: string
endPoint:
description: Endpoint is the docker network endpoint or socket
type: string
keyFile:
description: KeyFile is the key file path for a TLS connection
type: string
tlsVerify:
description: TLSVerify indicates if TLS peer must be verified
type: boolean
useTLS:
description: UseTLS indicates if TLS must be used
type: boolean
required:
- caFile
- certFile
- endPoint
- keyFile
- tlsVerify
- useTLS
type: object
dockerNetworkMode:
description: DockerNetworkMode is used to set the docker network
setting to --net=container:<id> when the builder is invoked from
a container.
type: string
dropCapabilities:
description: DropCapabilities contains a list of capabilities to
drop when executing containers
items:
type: string
type: array
environment:
description: Environment is a map of environment variables to be
passed to the image.
items:
description: EnvironmentSpec specifies a single environment variable.
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
excludeRegExp:
description: ExcludeRegExp contains a string representation of the
regular expression desired for deciding which files to exclude
from the tar stream
type: string
export:
description: Export Push the result image to specify image registry
in tag
type: boolean
gitSecretRef:
description: GitSecretRef is the BasicAuth Secret of Git Clone
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
hasOnBuild:
description: HasOnBuild will be set to true if the builder image
contains ONBUILD instructions
type: boolean
imageName:
description: ImageName Contains the registry address and reponame,
tag should set by field tag alone
type: string
imageScriptsUrl:
description: ImageScriptsURL is the default location to find the
assemble/run scripts for a builder image. This url can be a reference
within the builder image if the scheme is specified as image://
type: string
imageWorkDir:
description: ImageWorkDir is the default working directory for the
builder image.
type: string
incremental:
description: Incremental describes whether to try to perform incremental
build.
type: boolean
incrementalAuthentication:
description: IncrementalAuthentication holds the authentication
information for pulling the previous image from private repositories
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
incrementalFromTag:
description: IncrementalFromTag sets an alternative image tag to
look for existing artifacts. Tag is used by default if this is
not set.
type: string
injections:
description: Injections specifies a list source/destination folders
that are injected to the container that runs assemble. All files
we inject will be truncated after the assemble script finishes.
items:
description: VolumeSpec represents a single volume mount point.
properties:
destination:
description: Destination is the path to mount the volume to
- absolute or relative.
type: string
keep:
description: Keep indicates if the mounted data should be
kept in the final image.
type: boolean
source:
description: Source is a reference to the volume source.
type: string
type: object
type: array
isBinaryURL:
description: IsBinaryURL explain the type of SourceURL. If it is
IsBinaryURL, it will download the file directly without using
git.
type: boolean
keepSymlinks:
description: KeepSymlinks indicates to copy symlinks as symlinks.
Default behavior is to follow symlinks and copy files by content.
type: boolean
labelNamespace:
description: LabelNamespace provides the namespace under which the
labels will be generated.
type: string
labels:
additionalProperties:
type: string
description: Labels specify labels and their values to be applied
to the resulting image. Label keys must have non-zero length.
The labels defined here override generated labels in case they
have the same name.
type: object
layeredBuild:
description: LayeredBuild describes if this is build which layered
scripts and sources on top of BuilderImage.
type: boolean
nodeAffinityKey:
description: The key of Node Affinity.
type: string
nodeAffinityValues:
description: The values of Node Affinity.
items:
type: string
type: array
outputBuildResult:
description: Whether output build result to status.
type: boolean
outputImageName:
description: OutputImageName is a result image name without tag,
default is latest. tag will append to ImageName in the end
type: string
preserveWorkingDir:
description: PreserveWorkingDir describes if working directory should
be left after processing.
type: boolean
previousImagePullPolicy:
description: PreviousImagePullPolicy specifies when to pull the
previously build image when doing incremental build
type: string
pullAuthentication:
description: PullAuthentication holds the authentication information
for pulling the Docker images from private repositories
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
pushAuthentication:
description: PullAuthentication holds the authentication information
for pulling the Docker images from private repositories
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
removePreviousImage:
description: RemovePreviousImage describes if previous image should
be removed after successful build. This applies only to incremental
builds.
type: boolean
revisionId:
description: The RevisionId is a branch name or a SHA-1 hash of
every important thing about the commit
type: string
runImage:
description: RunImage will trigger a "docker run ..." invocation
of the produced image so the user can see if it operates as he
would expect
type: boolean
runtimeArtifacts:
description: RuntimeArtifacts specifies a list of source/destination
pairs that will be copied from builder to a runtime image. Source
can be a file or directory. Destination must be a directory. Regardless
whether it is an absolute or relative path, it will be placed
into image's WORKDIR. Destination also can be empty or equals
to ".", in this case it just refers to a root of WORKDIR. In case
it's empty, S2I will try to get this list from io.openshift.s2i.assemble-input-files
label on a RuntimeImage.
items:
description: VolumeSpec represents a single volume mount point.
properties:
destination:
description: Destination is the path to mount the volume to
- absolute or relative.
type: string
keep:
description: Keep indicates if the mounted data should be
kept in the final image.
type: boolean
source:
description: Source is a reference to the volume source.
type: string
type: object
type: array
runtimeAuthentication:
description: RuntimeAuthentication holds the authentication information
for pulling the runtime Docker images from private repositories.
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
runtimeImage:
description: RuntimeImage specifies the image that will be a base
for resulting image and will be used for running an application.
By default, BuilderImage is used for building and running, but
the latter may be overridden.
type: string
runtimeImagePullPolicy:
description: RuntimeImagePullPolicy specifies when to pull a runtime
image.
type: string
scriptDownloadProxyConfig:
description: ScriptDownloadProxyConfig optionally specifies the
http and https proxy to use when downloading scripts
properties:
httpProxy:
type: string
httpsProxy:
type: string
type: object
scriptsUrl:
description: ScriptsURL is a URL describing where to fetch the S2I
scripts from during build process. This url can be a reference
within the builder image if the scheme is specified as image://
type: string
secretCode:
description: SecretCode
type: string
securityOpt:
description: SecurityOpt are passed as options to the docker containers
launched by s2i.
items:
type: string
type: array
sourceUrl:
description: SourceURL is url of the codes such as https://github.com/a/b.git
type: string
tag:
description: Tag is a result image tag name.
type: string
taintKey:
description: The name of taint.
type: string
usage:
description: Usage allows for properly shortcircuiting s2i logic
when `s2i usage` is invoked
type: boolean
workingDir:
description: WorkingDir describes temporary directory used for downloading
sources, scripts and tar operations.
type: string
workingSourceDir:
description: WorkingSourceDir describes the subdirectory off of
WorkingDir set up during the repo download that is later used
as the root for ignore processing
type: string
required:
- imageName
- sourceUrl
type: object
fromTemplate:
description: FromTemplate define some inputs from user
properties:
builderImage:
description: BaseImage specify which version of this template to
use
type: string
name:
description: Name specify a template to use, so many fields in Config
can left empty
type: string
parameters:
description: Parameters must use with `template`, fill some parameters
which template will use
items:
properties:
defaultValue:
type: string
description:
type: string
key:
type: string
optValues:
items:
type: string
type: array
required:
type: boolean
type:
type: string
value:
type: string
type: object
type: array
type: object
type: object
status:
description: S2iBuilderStatus defines the observed state of S2iBuilder
properties:
lastRunName:
description: LastRunState return the name of the newest run of this
builder
type: string
lastRunStartTime:
description: LastRunStartTime return the startTime of the newest run
of this builder
format: date-time
type: string
lastRunState:
description: LastRunState return the state of the newest run of this
builder
type: string
runCount:
description: RunCount represent the sum of s2irun of this builder
type: integer
required:
- runCount
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,141 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2ibuildertemplates.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.codeFramework
name: Framework
type: string
- JSONPath: .spec.defaultBaseImage
name: DefaultBaseImage
type: string
- JSONPath: .spec.version
name: Version
type: string
group: devops.kubesphere.io
names:
categories:
- devops
kind: S2iBuilderTemplate
listKind: S2iBuilderTemplateList
plural: s2ibuildertemplates
shortNames:
- s2ibt
singular: s2ibuildertemplate
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: S2iBuilderTemplate is the Schema for the s2ibuildertemplates API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iBuilderTemplateSpec defines the desired state of S2iBuilderTemplate
properties:
codeFramework:
description: CodeFramework means which language this template is designed
for and which framework is using if has framework. Like Java, NodeJS
etc
type: string
containerInfo:
description: Images are the images this template will use.
items:
properties:
buildVolumes:
description: BuildVolumes specifies a list of volumes to mount
to container running the build.
items:
type: string
type: array
builderImage:
description: BaseImage are the images this template will use.
type: string
runtimeArtifacts:
items:
description: VolumeSpec represents a single volume mount point.
properties:
destination:
description: Destination is the path to mount the volume
to - absolute or relative.
type: string
keep:
description: Keep indicates if the mounted data should be
kept in the final image.
type: boolean
source:
description: Source is a reference to the volume source.
type: string
type: object
type: array
runtimeImage:
type: string
type: object
type: array
defaultBaseImage:
description: DefaultBaseImage is the image that will be used by default
type: string
description:
description: Description illustrate the purpose of this template
type: string
environment:
description: Parameters is a set of environment variables to be passed
to the image.
items:
properties:
defaultValue:
type: string
description:
type: string
key:
type: string
optValues:
items:
type: string
type: array
required:
type: boolean
type:
type: string
value:
type: string
type: object
type: array
iconPath:
description: IconPath is used for frontend display
type: string
version:
description: Version of template
type: string
type: object
status:
description: S2iBuilderTemplateStatus defines the observed state of S2iBuilderTemplate
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,181 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2iruns.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .status.runState
name: State
type: string
- JSONPath: .status.kubernetesJobName
name: K8sJobName
type: string
- JSONPath: .status.startTime
name: StartTime
type: date
- JSONPath: .status.completionTime
name: CompletionTime
type: date
- JSONPath: .status.s2iBuildResult.imageName
name: ImageName
type: string
group: devops.kubesphere.io
names:
kind: S2iRun
listKind: S2iRunList
plural: s2iruns
shortNames:
- s2ir
singular: s2irun
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: S2iRun is the Schema for the s2iruns API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iRunSpec defines the desired state of S2iRun
properties:
backoffLimit:
description: BackoffLimit limits the restart count of each s2irun. Default
is 0
format: int32
type: integer
builderName:
description: BuilderName specify the name of s2ibuilder, required
type: string
newRevisionId:
description: NewRevisionId override the default NewRevisionId in its
s2ibuilder.
type: string
newSourceURL:
description: NewSourceURL is used to download new binary artifacts
type: string
newTag:
description: NewTag override the default tag in its s2ibuilder, image
name cannot be changed.
type: string
secondsAfterFinished:
description: SecondsAfterFinished if is set and greater than zero, and
the job created by s2irun become successful or failed , the job will
be auto deleted after SecondsAfterFinished
format: int32
type: integer
required:
- builderName
type: object
status:
description: S2iRunStatus defines the observed state of S2iRun
properties:
completionTime:
description: Represents time when the job was completed. It is not guaranteed
to be set in happens-before order across separate operations. It is
represented in RFC3339 form and is in UTC.
format: date-time
type: string
kubernetesJobName:
description: KubernetesJobName is the job name in k8s
type: string
logURL:
description: LogURL is uesd for external log handler to let user know
where is log located in
type: string
runState:
description: RunState indicates whether this job is done or failed
type: string
s2iBuildResult:
description: S2i build result info.
properties:
commandPull:
description: Command for pull image.
type: string
imageCreated:
description: Image created time.
type: string
imageID:
description: Image ID.
type: string
imageName:
description: ImageName is the name of artifact
type: string
imageRepoTags:
description: image tags.
items:
type: string
type: array
imageSize:
description: The size in bytes of the image
format: int64
type: integer
type: object
s2iBuildSource:
description: S2i build source info.
properties:
binaryName:
description: Binary file Name
type: string
binarySize:
description: Binary file Size
format: int64
type: integer
builderImage:
description: // BuilderImage describes which image is used for building
the result images.
type: string
commitID:
description: CommitID represents an arbitrary extended object reference
in Git as SHA-1
type: string
committerEmail:
description: CommitterEmail contains the e-mail of the committer
type: string
committerName:
description: CommitterName contains the name of the committer
type: string
description:
description: Description is a result image description label. The
default is no description.
type: string
revisionId:
description: The RevisionId is a branch name or a SHA-1 hash of
every important thing about the commit
type: string
sourceUrl:
description: SourceURL is url of the codes such as https://github.com/a/b.git
type: string
type: object
startTime:
description: StartTime represent when this run began
format: date-time
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

239
config/crds/app_v1beta1_application.yaml generated Normal file
View File

@@ -0,0 +1,239 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
controller-tools.k8s.io: "1.0"
name: applications.app.k8s.io
spec:
group: app.k8s.io
names:
kind: Application
plural: applications
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
assemblyPhase:
type: string
componentKinds:
items:
type: object
type: array
descriptor:
properties:
description:
type: string
icons:
items:
properties:
size:
type: string
src:
type: string
type:
type: string
required:
- src
type: object
type: array
keywords:
items:
type: string
type: array
links:
items:
properties:
description:
type: string
url:
type: string
type: object
type: array
maintainers:
items:
properties:
email:
type: string
name:
type: string
url:
type: string
type: object
type: array
notes:
type: string
owners:
items:
properties:
email:
type: string
name:
type: string
url:
type: string
type: object
type: array
type:
type: string
version:
type: string
type: object
info:
items:
properties:
name:
type: string
type:
type: string
value:
type: string
valueFrom:
properties:
configMapKeyRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
key:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
resourceVersion:
type: string
uid:
type: string
type: object
ingressRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
host:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
path:
type: string
resourceVersion:
type: string
uid:
type: string
type: object
secretKeyRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
key:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
resourceVersion:
type: string
uid:
type: string
type: object
serviceRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
path:
type: string
port:
format: int32
type: integer
resourceVersion:
type: string
uid:
type: string
type: object
type:
type: string
type: object
type: object
type: array
selector:
type: object
type: object
status:
properties:
components:
items:
properties:
group:
type: string
kind:
type: string
link:
type: string
name:
type: string
status:
type: string
type: object
type: array
conditions:
items:
properties:
lastTransitionTime:
format: date-time
type: string
lastUpdateTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
required:
- type
- status
type: object
type: array
observedGeneration:
format: int64
type: integer
type: object
version: v1beta1
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,92 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: rules.auditing.kubesphere.io
spec:
group: auditing.kubesphere.io
names:
kind: Rule
listKind: RuleList
plural: rules
singular: rule
scope: Namespaced
validation:
openAPIV3Schema:
description: Rule is the Schema for the rules API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: AuditRuleSpec defines the desired state of Rule
properties:
rules:
items:
properties:
alias:
description: This effective When the rule type is alias
type: string
condition:
description: Rule condition This effective When the rule type
is rule
type: string
desc:
description: Rule describe
type: string
enable:
description: Is the rule enable
type: boolean
list:
description: This effective When the rule type is list
items:
type: string
type: array
macro:
description: This effective When the rule type is macro
type: string
name:
description: Rule name
type: string
output:
description: The output formater of message which send to user
type: string
priority:
description: Rule priority, DEBUG, INFO, WARNING
type: string
type:
description: Rule type, rule, macro,list,alias
type: string
required:
- enable
type: object
type: array
type: object
status:
description: AuditRuleStatus defines the observed state of Rule
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,915 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: webhooks.auditing.kubesphere.io
spec:
group: auditing.kubesphere.io
names:
kind: Webhook
listKind: WebhookList
plural: webhooks
singular: webhook
scope: Namespaced
validation:
openAPIV3Schema:
description: Webhook is the Schema for the webhooks API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: WebhookSpec defines the desired state of Webhook
properties:
affinity:
description: If specified, the pod's scheduling constraints
properties:
nodeAffinity:
description: Describes node affinity scheduling rules for the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods to nodes
that satisfy the affinity expressions specified by this field,
but it may choose a node that violates one or more of the
expressions. The node that is most preferred is the one with
the greatest sum of weights, i.e. for each node that meets
all of the scheduling requirements (resource request, requiredDuringScheduling
affinity expressions, etc.), compute a sum by iterating through
the elements of this field and adding "weight" to the sum
if the node matches the corresponding matchExpressions; the
node(s) with the highest sum are the most preferred.
items:
description: An empty preferred scheduling term matches all
objects with implicit weight 0 (i.e. it's a no-op). A null
preferred scheduling term matches no objects (i.e. is also
a no-op).
properties:
preference:
description: A node selector term, associated with the
corresponding weight.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: A node selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators are In,
NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: An array of string values. If the
operator is In or NotIn, the values array
must be non-empty. If the operator is Exists
or DoesNotExist, the values array must be
empty. If the operator is Gt or Lt, the values
array must have a single element, which will
be interpreted as an integer. This array is
replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: A node selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators are In,
NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: An array of string values. If the
operator is In or NotIn, the values array
must be non-empty. If the operator is Exists
or DoesNotExist, the values array must be
empty. If the operator is Gt or Lt, the values
array must have a single element, which will
be interpreted as an integer. This array is
replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
type: object
weight:
description: Weight associated with matching the corresponding
nodeSelectorTerm, in the range 1-100.
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the affinity requirements specified by this
field are not met at scheduling time, the pod will not be
scheduled onto the node. If the affinity requirements specified
by this field cease to be met at some point during pod execution
(e.g. due to an update), the system may or may not try to
eventually evict the pod from its node.
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms. The
terms are ORed.
items:
description: A null or empty node selector term matches
no objects. The requirements of them are ANDed. The
TopologySelectorTerm type implements a subset of the
NodeSelectorTerm.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: A node selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators are In,
NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: An array of string values. If the
operator is In or NotIn, the values array
must be non-empty. If the operator is Exists
or DoesNotExist, the values array must be
empty. If the operator is Gt or Lt, the values
array must have a single element, which will
be interpreted as an integer. This array is
replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: A node selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators are In,
NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: An array of string values. If the
operator is In or NotIn, the values array
must be non-empty. If the operator is Exists
or DoesNotExist, the values array must be
empty. If the operator is Gt or Lt, the values
array must have a single element, which will
be interpreted as an integer. This array is
replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
type: object
type: array
required:
- nodeSelectorTerms
type: object
type: object
podAffinity:
description: Describes pod affinity scheduling rules (e.g. co-locate
this pod in the same node, zone, etc. as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods to nodes
that satisfy the affinity expressions specified by this field,
but it may choose a node that violates one or more of the
expressions. The node that is most preferred is the one with
the greatest sum of weights, i.e. for each node that meets
all of the scheduling requirements (resource request, requiredDuringScheduling
affinity expressions, etc.), compute a sum by iterating through
the elements of this field and adding "weight" to the sum
if the node has pods which matches the corresponding podAffinityTerm;
the node(s) with the highest sum are the most preferred.
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: A label selector requirement is
a selector that contains values, a key, and
an operator that relates the key and values.
properties:
key:
description: key is the label key that the
selector applies to.
type: string
operator:
description: operator represents a key's
relationship to a set of values. Valid
operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator is "In",
and the values array contains only "value".
The requirements are ANDed.
type: object
type: object
namespaces:
description: namespaces specifies which namespaces
the labelSelector applies to (matches against);
null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching the labelSelector in the specified namespaces,
where co-located is defined as running on a node
whose value of the label with key topologyKey matches
that of any node on which any of the selected pods
is running. Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
description: weight associated with matching the corresponding
podAffinityTerm, in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the affinity requirements specified by this
field are not met at scheduling time, the pod will not be
scheduled onto the node. If the affinity requirements specified
by this field cease to be met at some point during pod execution
(e.g. due to a pod label update), the system may or may not
try to eventually evict the pod from its node. When there
are multiple elements, the lists of nodes corresponding to
each podAffinityTerm are intersected, i.e. all terms must
be satisfied.
items:
description: Defines a set of pods (namely those matching
the labelSelector relative to the given namespace(s)) that
this pod should be co-located (affinity) or not co-located
(anti-affinity) with, where co-located is defined as running
on a node whose value of the label with key <topologyKey>
matches that of any node on which a pod of the set of pods
is running
properties:
labelSelector:
description: A label query over a set of resources, in
this case pods.
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In,
NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string values.
If the operator is In or NotIn, the values
array must be non-empty. If the operator is
Exists or DoesNotExist, the values array must
be empty. This array is replaced during a
strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels map is equivalent
to an element of matchExpressions, whose key field
is "key", the operator is "In", and the values array
contains only "value". The requirements are ANDed.
type: object
type: object
namespaces:
description: namespaces specifies which namespaces the
labelSelector applies to (matches against); null or
empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods matching
the labelSelector in the specified namespaces, where
co-located is defined as running on a node whose value
of the label with key topologyKey matches that of any
node on which any of the selected pods is running. Empty
topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
description: Describes pod anti-affinity scheduling rules (e.g.
avoid putting this pod in the same node, zone, etc. as some other
pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods to nodes
that satisfy the anti-affinity expressions specified by this
field, but it may choose a node that violates one or more
of the expressions. The node that is most preferred is the
one with the greatest sum of weights, i.e. for each node that
meets all of the scheduling requirements (resource request,
requiredDuringScheduling anti-affinity expressions, etc.),
compute a sum by iterating through the elements of this field
and adding "weight" to the sum if the node has pods which
matches the corresponding podAffinityTerm; the node(s) with
the highest sum are the most preferred.
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: A label selector requirement is
a selector that contains values, a key, and
an operator that relates the key and values.
properties:
key:
description: key is the label key that the
selector applies to.
type: string
operator:
description: operator represents a key's
relationship to a set of values. Valid
operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator is "In",
and the values array contains only "value".
The requirements are ANDed.
type: object
type: object
namespaces:
description: namespaces specifies which namespaces
the labelSelector applies to (matches against);
null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching the labelSelector in the specified namespaces,
where co-located is defined as running on a node
whose value of the label with key topologyKey matches
that of any node on which any of the selected pods
is running. Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
description: weight associated with matching the corresponding
podAffinityTerm, in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the anti-affinity requirements specified by
this field are not met at scheduling time, the pod will not
be scheduled onto the node. If the anti-affinity requirements
specified by this field cease to be met at some point during
pod execution (e.g. due to a pod label update), the system
may or may not try to eventually evict the pod from its node.
When there are multiple elements, the lists of nodes corresponding
to each podAffinityTerm are intersected, i.e. all terms must
be satisfied.
items:
description: Defines a set of pods (namely those matching
the labelSelector relative to the given namespace(s)) that
this pod should be co-located (affinity) or not co-located
(anti-affinity) with, where co-located is defined as running
on a node whose value of the label with key <topologyKey>
matches that of any node on which a pod of the set of pods
is running
properties:
labelSelector:
description: A label query over a set of resources, in
this case pods.
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In,
NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string values.
If the operator is In or NotIn, the values
array must be non-empty. If the operator is
Exists or DoesNotExist, the values array must
be empty. This array is replaced during a
strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels map is equivalent
to an element of matchExpressions, whose key field
is "key", the operator is "In", and the values array
contains only "value". The requirements are ANDed.
type: object
type: object
namespaces:
description: namespaces specifies which namespaces the
labelSelector applies to (matches against); null or
empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods matching
the labelSelector in the specified namespaces, where
co-located is defined as running on a node whose value
of the label with key topologyKey matches that of any
node on which any of the selected pods is running. Empty
topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
type: array
type: object
type: object
args:
description: Arguments to the entrypoint.. It will be appended to the
args and replace the default value.
items:
type: string
type: array
auditLevel:
description: 'The Level that all requests are recorded at. available
options: None, Metadata, Request, RequestResponse default: Metadata'
type: string
auditSinkPolicy:
description: AuditSinkPolicy is a rule selector, only the rule matched
this selector will be taked effect.
properties:
alertingRuleSelector:
description: A label selector is a label query over a set of resources.
The result of matchLabels and matchExpressions are ANDed. An empty
label selector matches all objects. A null label selector matches
no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that
contains values, a key, and an operator that relates the
key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of string values. If the
operator is In or NotIn, the values array must be non-empty.
If the operator is Exists or DoesNotExist, the values
array must be empty. This array is replaced during a
strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator
is "In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
archivingRuleSelector:
description: A label selector is a label query over a set of resources.
The result of matchLabels and matchExpressions are ANDed. An empty
label selector matches all objects. A null label selector matches
no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that
contains values, a key, and an operator that relates the
key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of string values. If the
operator is In or NotIn, the values array must be non-empty.
If the operator is Exists or DoesNotExist, the values
array must be empty. This array is replaced during a
strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator
is "In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
type: object
auditType:
description: Audit type, static or dynamic.
type: string
image:
description: The webhook docker image name.
type: string
imagePullPolicy:
description: 'Image pull policy. One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
type: string
imagePullSecrets:
description: 'ImagePullSecrets is an optional list of references to
secrets in the same namespace to use for pulling any of the images
used by this PodSpec. If specified, these secrets will be passed to
individual puller implementations for them to use. For example, in
the case of docker, only DockerConfig type secrets are honored. More
info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
items:
description: LocalObjectReference contains enough information to let
you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
k8sAuditingEnabled:
description: K8s auditing is enabled or not.
type: boolean
nodeSelector:
additionalProperties:
type: string
description: 'NodeSelector is a selector which must be true for the
pod to fit on a node. Selector which must match a node''s labels for
the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
type: object
priority:
description: Rule priority, DEBUG < INFO < WARNING Audit events will
be stored only when the priority of the audit rule matching the audit
event is greater than this.
type: string
receivers:
description: ' Receiver contains the information to make a connection
with the alertmanager'
items:
description: Receiver config which received the audit alert
properties:
config:
description: ClientConfig holds the connection parameters for
the webhook
properties:
caBundle:
description: '`caBundle` is a PEM encoded CA bundle which
will be used to validate the webhook''s server certificate.
If unspecified, system trust roots on the apiserver are
used.'
format: byte
type: string
service:
description: "`service` is a reference to the service for
this webhook. Either `service` or `url` must be specified.
\n If the webhook is running within the cluster, then you
should use `service`."
properties:
name:
description: '`name` is the name of the service. Required'
type: string
namespace:
description: '`namespace` is the namespace of the service.
Required'
type: string
path:
description: '`path` is an optional URL path which will
be sent in any request to this service.'
type: string
port:
description: If specified, the port on the service that
hosting webhook. Default to 443 for backward compatibility.
`port` should be a valid port number (1-65535, inclusive).
format: int32
type: integer
required:
- name
- namespace
type: object
url:
description: "`url` gives the location of the webhook, in
standard URL form (`scheme://host:port/path`). Exactly one
of `url` or `service` must be specified. \n The `host` should
not refer to a service running in the cluster; use the `service`
field instead. The host might be resolved via external DNS
in some apiservers (e.g., `kube-apiserver` cannot resolve
in-cluster DNS as that would be a layering violation). `host`
may also be an IP address. \n Please note that using `localhost`
or `127.0.0.1` as a `host` is risky unless you take great
care to run this webhook on all hosts which run an apiserver
which might need to make calls to this webhook. Such installs
are likely to be non-portable, i.e., not easy to turn up
in a new cluster. \n The scheme must be \"https\"; the URL
must begin with \"https://\". \n A path is optional, and
if present may be any string permissible in a URL. You may
use the path to pass an arbitrary string to the webhook,
for example, a cluster identifier. \n Attempting to use
a user or basic auth e.g. \"user:password@\" is not allowed.
Fragments (\"#...\") and query parameters (\"?...\") are
not allowed, either."
type: string
type: object
name:
description: Receiver name
type: string
type:
description: Receiver type, alertmanager or webhook
type: string
type: object
type: array
replicas:
description: Number of desired pods. This is a pointer to distinguish
between explicit zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: 'Compute Resources required by this container. Cannot be
updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
properties:
limits:
additionalProperties:
type: string
description: 'Limits describes the maximum amount of compute resources
allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
requests:
additionalProperties:
type: string
description: 'Requests describes the minimum amount of compute resources
required. If Requests is omitted for a container, it defaults
to Limits if that is explicitly specified, otherwise to an implementation-defined
value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
type: object
type: object
tolerations:
description: If specified, the pod's tolerations.
items:
description: The pod this Toleration is attached to tolerates any
taint that matches the triple <key,value,effect> using the matching
operator <operator>.
properties:
effect:
description: Effect indicates the taint effect to match. Empty
means match all taint effects. When specified, allowed values
are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Key is the taint key that the toleration applies
to. Empty means match all taint keys. If the key is empty, operator
must be Exists; this combination means to match all values and
all keys.
type: string
operator:
description: Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal. Exists
is equivalent to wildcard for value, so that a pod can tolerate
all taints of a particular category.
type: string
tolerationSeconds:
description: TolerationSeconds represents the period of time the
toleration (which must be of effect NoExecute, otherwise this
field is ignored) tolerates the taint. By default, it is not
set, which means tolerate the taint forever (do not evict).
Zero and negative values will be treated as 0 (evict immediately)
by the system.
format: int64
type: integer
value:
description: Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise
just a regular string.
type: string
type: object
type: array
type: object
status:
description: WebhookStatus defines the observed state of Webhook
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,173 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: clusters.cluster.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.joinFederation
name: Federated
type: boolean
- JSONPath: .spec.provider
name: Provider
type: string
- JSONPath: .spec.enable
name: Active
type: boolean
- JSONPath: .status.kubernetesVersion
name: Version
type: string
group: cluster.kubesphere.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: Cluster is the schema for the clusters API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
connection:
description: Connection holds info to connect to the member cluster
properties:
kubeconfig:
description: KubeConfig content used to connect to cluster api server
Should provide this field explicitly if connection type is direct.
Will be populated by ks-proxy if connection type is proxy.
format: byte
type: string
kubernetesAPIEndpoint:
description: 'Kubernetes API Server endpoint. Example: https://10.10.0.1:6443
Should provide this field explicitly if connection type is direct.
Will be populated by ks-apiserver if connection type is proxy.'
type: string
kubernetesAPIServerPort:
description: KubeAPIServerPort is the port which listens for forwarding
kube-apiserver traffic Only applicable when connection type is
proxy.
type: integer
kubesphereAPIEndpoint:
description: 'KubeSphere API Server endpoint. Example: http://10.10.0.11:8080
Should provide this field explicitly if connection type is direct.
Will be populated by ks-apiserver if connection type is proxy.'
type: string
kubesphereAPIServerPort:
description: KubeSphereAPIServerPort is the port which listens for
forwarding kubesphere apigateway traffic Only applicable when
connection type is proxy.
type: integer
token:
description: Token used by agents of member cluster to connect to
host cluster proxy. This field is populated by apiserver only
if connection type is proxy.
type: string
type:
description: type defines how host cluster will connect to host
cluster ConnectionTypeDirect means direct connection, this requires kubeconfig
and kubesphere apiserver endpoint provided ConnectionTypeProxy
means using kubesphere proxy, no kubeconfig or kubesphere apiserver
endpoint required
type: string
type: object
enable:
description: Desired state of the cluster
type: boolean
joinFederation:
description: Join cluster as a kubefed cluster
type: boolean
provider:
description: Provider of the cluster, this field is just for description
type: string
type: object
status:
properties:
conditions:
description: Represents the latest available observations of a cluster's
current state.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of the condition
type: string
required:
- status
- type
type: object
type: array
configz:
additionalProperties:
type: boolean
description: Configz is status of components enabled in the member cluster.
This is synchronized with member cluster every amount of time, like
5 minutes.
type: object
kubernetesVersion:
description: GitVersion of the kubernetes cluster, this field is populated
by cluster controller
type: string
nodeCount:
description: Count of the kubernetes cluster nodes This field may not
reflect the instant status of the cluster.
type: integer
region:
description: Region is the name of the region in which all of the nodes
in the cluster exist. e.g. 'us-east1'.
type: string
zones:
description: Zones are the names of availability zones in which the
nodes of the cluster exist, e.g. 'us-east1-a'.
items:
type: string
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,59 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: devopsprojects.devops.kubesphere.io
spec:
group: devops.kubesphere.io
names:
categories:
- devops
kind: DevOpsProject
listKind: DevOpsProjectList
plural: devopsprojects
singular: devopsproject
scope: Cluster
validation:
openAPIV3Schema:
description: DevOpsProject is the Schema for the devopsprojects API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: DevOpsProjectSpec defines the desired state of DevOpsProject
type: object
status:
description: DevOpsProjectStatus defines the observed state of DevOpsProject
properties:
adminNamespace:
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
of cluster Important: Run "make" to regenerate code after modifying
this file'
type: string
type: object
type: object
version: v1alpha3
versions:
- name: v1alpha3
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,260 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: pipelines.devops.kubesphere.io
spec:
group: devops.kubesphere.io
names:
kind: Pipeline
listKind: PipelineList
plural: pipelines
singular: pipeline
scope: Namespaced
validation:
openAPIV3Schema:
description: Pipeline is the Schema for the pipelines API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: PipelineSpec defines the desired state of Pipeline
properties:
multi_branch_pipeline:
properties:
bitbucket_server_source:
properties:
api_uri:
type: string
credential_id:
type: string
discover_branches:
type: integer
discover_pr_from_forks:
properties:
strategy:
type: integer
trust:
type: integer
type: object
discover_pr_from_origin:
type: integer
git_clone_option:
properties:
depth:
type: integer
shallow:
type: boolean
timeout:
type: integer
type: object
owner:
type: string
regex_filter:
type: string
repo:
type: string
scm_id:
type: string
type: object
description:
type: string
discarder:
properties:
days_to_keep:
type: string
num_to_keep:
type: string
type: object
git_source:
properties:
credential_id:
type: string
discover_branches:
type: boolean
git_clone_option:
properties:
depth:
type: integer
shallow:
type: boolean
timeout:
type: integer
type: object
regex_filter:
type: string
scm_id:
type: string
url:
type: string
type: object
github_source:
properties:
api_uri:
type: string
credential_id:
type: string
discover_branches:
type: integer
discover_pr_from_forks:
properties:
strategy:
type: integer
trust:
type: integer
type: object
discover_pr_from_origin:
type: integer
git_clone_option:
properties:
depth:
type: integer
shallow:
type: boolean
timeout:
type: integer
type: object
owner:
type: string
regex_filter:
type: string
repo:
type: string
scm_id:
type: string
type: object
multibranch_job_trigger:
properties:
create_action_job_to_trigger:
type: string
delete_action_job_to_trigger:
type: string
type: object
name:
type: string
script_path:
type: string
single_svn_source:
properties:
credential_id:
type: string
remote:
type: string
scm_id:
type: string
type: object
source_type:
type: string
svn_source:
properties:
credential_id:
type: string
excludes:
type: string
includes:
type: string
remote:
type: string
scm_id:
type: string
type: object
timer_trigger:
properties:
cron:
description: user in no scm job
type: string
interval:
description: use in multi-branch job
type: string
type: object
required:
- name
- script_path
- source_type
type: object
pipeline:
properties:
description:
type: string
disable_concurrent:
type: boolean
discarder:
properties:
days_to_keep:
type: string
num_to_keep:
type: string
type: object
jenkinsfile:
type: string
name:
type: string
parameters:
items:
properties:
default_value:
type: string
description:
type: string
name:
type: string
type:
type: string
required:
- name
- type
type: object
type: array
remote_trigger:
properties:
token:
type: string
type: object
timer_trigger:
properties:
cron:
description: user in no scm job
type: string
interval:
description: use in multi-branch job
type: string
type: object
required:
- name
type: object
type:
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
Important: Run "make" to regenerate code after modifying this file'
type: string
required:
- type
type: object
status:
description: PipelineStatus defines the observed state of Pipeline
type: object
type: object
version: v1alpha3
versions:
- name: v1alpha3
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,86 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2ibinaries.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.fileName
name: FileName
type: string
- JSONPath: .spec.md5
name: MD5
type: string
- JSONPath: .spec.size
name: Size
type: string
- JSONPath: .status.phase
name: Phase
type: string
group: devops.kubesphere.io
names:
kind: S2iBinary
listKind: S2iBinaryList
plural: s2ibinaries
singular: s2ibinary
scope: Namespaced
subresources: {}
validation:
openAPIV3Schema:
description: S2iBinary is the Schema for the s2ibinaries API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iBinarySpec defines the desired state of S2iBinary
properties:
downloadURL:
description: DownloadURL in KubeSphere
type: string
fileName:
description: FileName is filename of binary
type: string
md5:
description: MD5 is Binary's MD5 Hash
type: string
size:
description: Size is the file size of file
type: string
uploadTimeStamp:
description: UploadTime is last upload time
format: date-time
type: string
type: object
status:
description: S2iBinaryStatus defines the observed state of S2iBinary
properties:
phase:
description: Phase is status of S2iBinary . Possible value is "Ready","UnableToDownload"
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,578 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2ibuilders.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .status.runCount
name: RunCount
type: integer
- JSONPath: .status.lastRunState
name: LastRunState
type: string
- JSONPath: .status.lastRunName
name: LastRunName
type: string
- JSONPath: .status.lastRunStartTime
name: LastRunStartTime
type: date
group: devops.kubesphere.io
names:
kind: S2iBuilder
listKind: S2iBuilderList
plural: s2ibuilders
shortNames:
- s2ib
singular: s2ibuilder
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: S2iBuilder is the Schema for the s2ibuilders API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iBuilderSpec defines the desired state of S2iBuilder
properties:
config:
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
Important: Run "make" to regenerate code after modifying this file'
properties:
addHost:
description: AddHost Add a line to /etc/hosts for test purpose or
private use in LAN. Its format is host:IP,muliple hosts can be
added by using multiple --add-host
items:
type: string
type: array
asDockerfile:
description: AsDockerfile indicates the path where the Dockerfile
should be written instead of building a new image.
type: string
assembleUser:
description: AssembleUser specifies the user to run the assemble
script in container
type: string
blockOnBuild:
description: BlockOnBuild prevents s2i from performing a docker
build operation if one is necessary to execute ONBUILD commands,
or to layer source code into the container for images that don't
have a tar binary available, if the image contains ONBUILD commands
that would be executed.
type: boolean
branchExpression:
description: Regular expressions, ignoring names that do not match
the provided regular expression
type: string
buildVolumes:
description: BuildVolumes specifies a list of volumes to mount to
container running the build.
items:
type: string
type: array
builderBaseImageVersion:
description: BuilderBaseImageVersion provides optional version information
about the builder base image.
type: string
builderImage:
description: BuilderImage describes which image is used for building
the result images.
type: string
builderImageVersion:
description: BuilderImageVersion provides optional version information
about the builder image.
type: string
builderPullPolicy:
description: BuilderPullPolicy specifies when to pull the builder
image
type: string
callbackUrl:
description: CallbackURL is a URL which is called upon successful
build to inform about that fact.
type: string
cgroupLimits:
description: CGroupLimits describes the cgroups limits that will
be applied to any containers run by s2i.
properties:
cpuPeriod:
format: int64
type: integer
cpuQuota:
format: int64
type: integer
cpuShares:
format: int64
type: integer
memoryLimitBytes:
format: int64
type: integer
memorySwap:
format: int64
type: integer
parent:
type: string
required:
- cpuPeriod
- cpuQuota
- cpuShares
- memoryLimitBytes
- memorySwap
- parent
type: object
contextDir:
description: Specify a relative directory inside the application
repository that should be used as a root directory for the application.
type: string
description:
description: Description is a result image description label. The
default is no description.
type: string
destination:
description: Destination specifies a location where the untar operation
will place its artifacts.
type: string
displayName:
description: DisplayName is a result image display-name label. This
defaults to the output image name.
type: string
dockerConfig:
description: DockerConfig describes how to access host docker daemon.
properties:
caFile:
description: CAFile is the certificate authority file path for
a TLS connection
type: string
certFile:
description: CertFile is the certificate file path for a TLS
connection
type: string
endPoint:
description: Endpoint is the docker network endpoint or socket
type: string
keyFile:
description: KeyFile is the key file path for a TLS connection
type: string
tlsVerify:
description: TLSVerify indicates if TLS peer must be verified
type: boolean
useTLS:
description: UseTLS indicates if TLS must be used
type: boolean
required:
- caFile
- certFile
- endPoint
- keyFile
- tlsVerify
- useTLS
type: object
dockerNetworkMode:
description: DockerNetworkMode is used to set the docker network
setting to --net=container:<id> when the builder is invoked from
a container.
type: string
dropCapabilities:
description: DropCapabilities contains a list of capabilities to
drop when executing containers
items:
type: string
type: array
environment:
description: Environment is a map of environment variables to be
passed to the image.
items:
description: EnvironmentSpec specifies a single environment variable.
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
excludeRegExp:
description: ExcludeRegExp contains a string representation of the
regular expression desired for deciding which files to exclude
from the tar stream
type: string
export:
description: Export Push the result image to specify image registry
in tag
type: boolean
gitSecretRef:
description: GitSecretRef is the BasicAuth Secret of Git Clone
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
hasOnBuild:
description: HasOnBuild will be set to true if the builder image
contains ONBUILD instructions
type: boolean
imageName:
description: ImageName Contains the registry address and reponame,
tag should set by field tag alone
type: string
imageScriptsUrl:
description: ImageScriptsURL is the default location to find the
assemble/run scripts for a builder image. This url can be a reference
within the builder image if the scheme is specified as image://
type: string
imageWorkDir:
description: ImageWorkDir is the default working directory for the
builder image.
type: string
incremental:
description: Incremental describes whether to try to perform incremental
build.
type: boolean
incrementalAuthentication:
description: IncrementalAuthentication holds the authentication
information for pulling the previous image from private repositories
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
incrementalFromTag:
description: IncrementalFromTag sets an alternative image tag to
look for existing artifacts. Tag is used by default if this is
not set.
type: string
injections:
description: Injections specifies a list source/destination folders
that are injected to the container that runs assemble. All files
we inject will be truncated after the assemble script finishes.
items:
description: VolumeSpec represents a single volume mount point.
properties:
destination:
description: Destination is the path to mount the volume to
- absolute or relative.
type: string
keep:
description: Keep indicates if the mounted data should be
kept in the final image.
type: boolean
source:
description: Source is a reference to the volume source.
type: string
type: object
type: array
isBinaryURL:
description: IsBinaryURL explain the type of SourceURL. If it is
IsBinaryURL, it will download the file directly without using
git.
type: boolean
keepSymlinks:
description: KeepSymlinks indicates to copy symlinks as symlinks.
Default behavior is to follow symlinks and copy files by content.
type: boolean
labelNamespace:
description: LabelNamespace provides the namespace under which the
labels will be generated.
type: string
labels:
additionalProperties:
type: string
description: Labels specify labels and their values to be applied
to the resulting image. Label keys must have non-zero length.
The labels defined here override generated labels in case they
have the same name.
type: object
layeredBuild:
description: LayeredBuild describes if this is build which layered
scripts and sources on top of BuilderImage.
type: boolean
nodeAffinityKey:
description: The key of Node Affinity.
type: string
nodeAffinityValues:
description: The values of Node Affinity.
items:
type: string
type: array
outputBuildResult:
description: Whether output build result to status.
type: boolean
outputImageName:
description: OutputImageName is a result image name without tag,
default is latest. tag will append to ImageName in the end
type: string
preserveWorkingDir:
description: PreserveWorkingDir describes if working directory should
be left after processing.
type: boolean
previousImagePullPolicy:
description: PreviousImagePullPolicy specifies when to pull the
previously build image when doing incremental build
type: string
pullAuthentication:
description: PullAuthentication holds the authentication information
for pulling the Docker images from private repositories
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
pushAuthentication:
description: PullAuthentication holds the authentication information
for pulling the Docker images from private repositories
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
removePreviousImage:
description: RemovePreviousImage describes if previous image should
be removed after successful build. This applies only to incremental
builds.
type: boolean
revisionId:
description: The RevisionId is a branch name or a SHA-1 hash of
every important thing about the commit
type: string
runImage:
description: RunImage will trigger a "docker run ..." invocation
of the produced image so the user can see if it operates as he
would expect
type: boolean
runtimeArtifacts:
description: RuntimeArtifacts specifies a list of source/destination
pairs that will be copied from builder to a runtime image. Source
can be a file or directory. Destination must be a directory. Regardless
whether it is an absolute or relative path, it will be placed
into image's WORKDIR. Destination also can be empty or equals
to ".", in this case it just refers to a root of WORKDIR. In case
it's empty, S2I will try to get this list from io.openshift.s2i.assemble-input-files
label on a RuntimeImage.
items:
description: VolumeSpec represents a single volume mount point.
properties:
destination:
description: Destination is the path to mount the volume to
- absolute or relative.
type: string
keep:
description: Keep indicates if the mounted data should be
kept in the final image.
type: boolean
source:
description: Source is a reference to the volume source.
type: string
type: object
type: array
runtimeAuthentication:
description: RuntimeAuthentication holds the authentication information
for pulling the runtime Docker images from private repositories.
properties:
email:
type: string
password:
type: string
secretRef:
description: LocalObjectReference contains enough information
to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
serverAddress:
type: string
username:
type: string
type: object
runtimeImage:
description: RuntimeImage specifies the image that will be a base
for resulting image and will be used for running an application.
By default, BuilderImage is used for building and running, but
the latter may be overridden.
type: string
runtimeImagePullPolicy:
description: RuntimeImagePullPolicy specifies when to pull a runtime
image.
type: string
scriptDownloadProxyConfig:
description: ScriptDownloadProxyConfig optionally specifies the
http and https proxy to use when downloading scripts
properties:
httpProxy:
type: string
httpsProxy:
type: string
type: object
scriptsUrl:
description: ScriptsURL is a URL describing where to fetch the S2I
scripts from during build process. This url can be a reference
within the builder image if the scheme is specified as image://
type: string
secretCode:
description: SecretCode
type: string
securityOpt:
description: SecurityOpt are passed as options to the docker containers
launched by s2i.
items:
type: string
type: array
sourceUrl:
description: SourceURL is url of the codes such as https://github.com/a/b.git
type: string
tag:
description: Tag is a result image tag name.
type: string
taintKey:
description: The name of taint.
type: string
usage:
description: Usage allows for properly shortcircuiting s2i logic
when `s2i usage` is invoked
type: boolean
workingDir:
description: WorkingDir describes temporary directory used for downloading
sources, scripts and tar operations.
type: string
workingSourceDir:
description: WorkingSourceDir describes the subdirectory off of
WorkingDir set up during the repo download that is later used
as the root for ignore processing
type: string
required:
- imageName
- sourceUrl
type: object
fromTemplate:
description: FromTemplate define some inputs from user
properties:
builderImage:
description: BaseImage specify which version of this template to
use
type: string
name:
description: Name specify a template to use, so many fields in Config
can left empty
type: string
parameters:
description: Parameters must use with `template`, fill some parameters
which template will use
items:
properties:
defaultValue:
type: string
description:
type: string
key:
type: string
optValues:
items:
type: string
type: array
required:
type: boolean
type:
type: string
value:
type: string
type: object
type: array
type: object
type: object
status:
description: S2iBuilderStatus defines the observed state of S2iBuilder
properties:
lastRunName:
description: LastRunState return the name of the newest run of this
builder
type: string
lastRunStartTime:
description: LastRunStartTime return the startTime of the newest run
of this builder
format: date-time
type: string
lastRunState:
description: LastRunState return the state of the newest run of this
builder
type: string
runCount:
description: RunCount represent the sum of s2irun of this builder
type: integer
required:
- runCount
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,141 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2ibuildertemplates.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.codeFramework
name: Framework
type: string
- JSONPath: .spec.defaultBaseImage
name: DefaultBaseImage
type: string
- JSONPath: .spec.version
name: Version
type: string
group: devops.kubesphere.io
names:
categories:
- devops
kind: S2iBuilderTemplate
listKind: S2iBuilderTemplateList
plural: s2ibuildertemplates
shortNames:
- s2ibt
singular: s2ibuildertemplate
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: S2iBuilderTemplate is the Schema for the s2ibuildertemplates API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iBuilderTemplateSpec defines the desired state of S2iBuilderTemplate
properties:
codeFramework:
description: CodeFramework means which language this template is designed
for and which framework is using if has framework. Like Java, NodeJS
etc
type: string
containerInfo:
description: Images are the images this template will use.
items:
properties:
buildVolumes:
description: BuildVolumes specifies a list of volumes to mount
to container running the build.
items:
type: string
type: array
builderImage:
description: BaseImage are the images this template will use.
type: string
runtimeArtifacts:
items:
description: VolumeSpec represents a single volume mount point.
properties:
destination:
description: Destination is the path to mount the volume
to - absolute or relative.
type: string
keep:
description: Keep indicates if the mounted data should be
kept in the final image.
type: boolean
source:
description: Source is a reference to the volume source.
type: string
type: object
type: array
runtimeImage:
type: string
type: object
type: array
defaultBaseImage:
description: DefaultBaseImage is the image that will be used by default
type: string
description:
description: Description illustrate the purpose of this template
type: string
environment:
description: Parameters is a set of environment variables to be passed
to the image.
items:
properties:
defaultValue:
type: string
description:
type: string
key:
type: string
optValues:
items:
type: string
type: array
required:
type: boolean
type:
type: string
value:
type: string
type: object
type: array
iconPath:
description: IconPath is used for frontend display
type: string
version:
description: Version of template
type: string
type: object
status:
description: S2iBuilderTemplateStatus defines the observed state of S2iBuilderTemplate
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,181 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: s2iruns.devops.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .status.runState
name: State
type: string
- JSONPath: .status.kubernetesJobName
name: K8sJobName
type: string
- JSONPath: .status.startTime
name: StartTime
type: date
- JSONPath: .status.completionTime
name: CompletionTime
type: date
- JSONPath: .status.s2iBuildResult.imageName
name: ImageName
type: string
group: devops.kubesphere.io
names:
kind: S2iRun
listKind: S2iRunList
plural: s2iruns
shortNames:
- s2ir
singular: s2irun
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: S2iRun is the Schema for the s2iruns API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: S2iRunSpec defines the desired state of S2iRun
properties:
backoffLimit:
description: BackoffLimit limits the restart count of each s2irun. Default
is 0
format: int32
type: integer
builderName:
description: BuilderName specify the name of s2ibuilder, required
type: string
newRevisionId:
description: NewRevisionId override the default NewRevisionId in its
s2ibuilder.
type: string
newSourceURL:
description: NewSourceURL is used to download new binary artifacts
type: string
newTag:
description: NewTag override the default tag in its s2ibuilder, image
name cannot be changed.
type: string
secondsAfterFinished:
description: SecondsAfterFinished if is set and greater than zero, and
the job created by s2irun become successful or failed , the job will
be auto deleted after SecondsAfterFinished
format: int32
type: integer
required:
- builderName
type: object
status:
description: S2iRunStatus defines the observed state of S2iRun
properties:
completionTime:
description: Represents time when the job was completed. It is not guaranteed
to be set in happens-before order across separate operations. It is
represented in RFC3339 form and is in UTC.
format: date-time
type: string
kubernetesJobName:
description: KubernetesJobName is the job name in k8s
type: string
logURL:
description: LogURL is uesd for external log handler to let user know
where is log located in
type: string
runState:
description: RunState indicates whether this job is done or failed
type: string
s2iBuildResult:
description: S2i build result info.
properties:
commandPull:
description: Command for pull image.
type: string
imageCreated:
description: Image created time.
type: string
imageID:
description: Image ID.
type: string
imageName:
description: ImageName is the name of artifact
type: string
imageRepoTags:
description: image tags.
items:
type: string
type: array
imageSize:
description: The size in bytes of the image
format: int64
type: integer
type: object
s2iBuildSource:
description: S2i build source info.
properties:
binaryName:
description: Binary file Name
type: string
binarySize:
description: Binary file Size
format: int64
type: integer
builderImage:
description: // BuilderImage describes which image is used for building
the result images.
type: string
commitID:
description: CommitID represents an arbitrary extended object reference
in Git as SHA-1
type: string
committerEmail:
description: CommitterEmail contains the e-mail of the committer
type: string
committerName:
description: CommitterName contains the name of the committer
type: string
description:
description: Description is a result image description label. The
default is no description.
type: string
revisionId:
description: The RevisionId is a branch name or a SHA-1 hash of
every important thing about the commit
type: string
sourceUrl:
description: SourceURL is url of the codes such as https://github.com/a/b.git
type: string
type: object
startTime:
description: StartTime represent when this run began
format: date-time
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,99 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: globalrolebindings.iam.kubesphere.io
spec:
group: iam.kubesphere.io
names:
categories:
- iam
kind: GlobalRoleBinding
listKind: GlobalRoleBindingList
plural: globalrolebindings
singular: globalrolebinding
scope: Cluster
validation:
openAPIV3Schema:
description: GlobalRoleBinding is the Schema for the globalrolebindings API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
description: Standard object's metadata.
type: object
roleRef:
description: RoleRef can only reference a GlobalRole. If the RoleRef cannot
be resolved, the Authorizer must return an error.
properties:
apiGroup:
description: APIGroup is the group for the resource being referenced
type: string
kind:
description: Kind is the type of resource being referenced
type: string
name:
description: Name is the name of resource being referenced
type: string
required:
- apiGroup
- kind
- name
type: object
subjects:
description: Subjects holds references to the objects the role applies to.
items:
description: Subject contains a reference to the object or user identities
a role binding applies to. This can either hold a direct API object
reference, or a value for non-objects such as user and group names.
properties:
apiGroup:
description: APIGroup holds the API group of the referenced subject.
Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io"
for User and Group subjects.
type: string
kind:
description: Kind of object being referenced. Values defined by this
API group are "User", "Group", and "ServiceAccount". If the Authorizer
does not recognized the kind value, the Authorizer should report
an error.
type: string
name:
description: Name of the object being referenced.
type: string
namespace:
description: Namespace of the referenced object. If the object kind
is non-namespace, such as "User" or "Group", and this value is not
empty the Authorizer should report an error.
type: string
required:
- kind
- name
type: object
type: array
required:
- roleRef
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,95 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: globalroles.iam.kubesphere.io
spec:
group: iam.kubesphere.io
names:
categories:
- iam
kind: GlobalRole
listKind: GlobalRoleList
plural: globalroles
singular: globalrole
scope: Cluster
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
description: Standard object's metadata.
type: object
rules:
description: Rules holds all the PolicyRules for this GlobalRole
items:
description: PolicyRule holds information that describes a policy rule,
but does not contain information about who the rule applies to or which
namespace the rule applies to.
properties:
apiGroups:
description: APIGroups is the name of the APIGroup that contains the
resources. If multiple API groups are specified, any action requested
against one of the enumerated resources in any API group will be
allowed.
items:
type: string
type: array
nonResourceURLs:
description: NonResourceURLs is a set of partial urls that a user
should have access to. *s are allowed, but only as the full, final
step in the path Since non-resource URLs are not namespaced, this
field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.
Rules can either apply to API resources (such as "pods" or "secrets")
or non-resource URL paths (such as "/api"), but not both.
items:
type: string
type: array
resourceNames:
description: ResourceNames is an optional white list of names that
the rule applies to. An empty set means that everything is allowed.
items:
type: string
type: array
resources:
description: Resources is a list of resources this rule applies to. ResourceAll
represents all resources.
items:
type: string
type: array
verbs:
description: Verbs is a list of Verbs that apply to ALL the ResourceKinds
and AttributeRestrictions contained in this rule. VerbAll represents
all kinds.
items:
type: string
type: array
required:
- verbs
type: object
type: array
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,95 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: loginrecords.iam.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.type
name: Type
type: string
- JSONPath: .spec.provider
name: Provider
type: string
- JSONPath: .spec.sourceIP
name: From
type: string
- JSONPath: .spec.success
name: Success
type: string
- JSONPath: .spec.reason
name: Reason
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: iam.kubesphere.io
names:
categories:
- iam
kind: LoginRecord
listKind: LoginRecordList
plural: loginrecords
singular: loginrecord
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
provider:
description: Provider of authentication, Ldap/Github etc.
type: string
reason:
description: States failed login attempt reason
type: string
sourceIP:
description: Source IP of client
type: string
success:
description: Successful login attempt or not
type: boolean
type:
description: Which authentication method used, BasicAuth/OAuth
type: string
userAgent:
description: User agent of login attempt
type: string
required:
- provider
- reason
- sourceIP
- success
- type
type: object
required:
- spec
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,50 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: rolebases.iam.kubesphere.io
spec:
group: iam.kubesphere.io
names:
categories:
- iam
kind: RoleBase
listKind: RoleBaseList
plural: rolebases
singular: rolebase
scope: Cluster
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
role:
type: object
required:
- role
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

98
config/crds/iam.kubesphere.io_users.yaml generated Normal file
View File

@@ -0,0 +1,98 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: users.iam.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.email
name: Email
type: string
- JSONPath: .status.state
name: Status
type: string
group: iam.kubesphere.io
names:
categories:
- iam
kind: User
listKind: UserList
plural: users
singular: user
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: User is the Schema for the users API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
description: Standard object's metadata.
type: object
spec:
description: UserSpec defines the desired state of User
properties:
description:
description: Description of the user.
type: string
displayName:
type: string
email:
description: Unique email address(https://www.ietf.org/rfc/rfc5322.txt).
type: string
groups:
items:
type: string
type: array
lang:
description: The preferred written or spoken language for the user.
type: string
password:
description: password will be encrypted by mutating admission webhook
type: string
required:
- email
type: object
status:
description: UserStatus defines the observed state of User
properties:
lastLoginTime:
description: Last login attempt timestamp
format: date-time
type: string
lastTransitionTime:
format: date-time
type: string
reason:
type: string
state:
description: The user status
type: string
type: object
required:
- spec
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,104 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: workspacerolebindings.iam.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .metadata.labels.kubesphere\.io/workspace
name: Workspace
type: string
group: iam.kubesphere.io
names:
categories:
- iam
kind: WorkspaceRoleBinding
listKind: WorkspaceRoleBindingList
plural: workspacerolebindings
singular: workspacerolebinding
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: WorkspaceRoleBinding is the Schema for the workspacerolebindings
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
roleRef:
description: RoleRef can only reference a WorkspaceRole. If the RoleRef
cannot be resolved, the Authorizer must return an error.
properties:
apiGroup:
description: APIGroup is the group for the resource being referenced
type: string
kind:
description: Kind is the type of resource being referenced
type: string
name:
description: Name is the name of resource being referenced
type: string
required:
- apiGroup
- kind
- name
type: object
subjects:
description: Subjects holds references to the objects the role applies to.
items:
description: Subject contains a reference to the object or user identities
a role binding applies to. This can either hold a direct API object
reference, or a value for non-objects such as user and group names.
properties:
apiGroup:
description: APIGroup holds the API group of the referenced subject.
Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io"
for User and Group subjects.
type: string
kind:
description: Kind of object being referenced. Values defined by this
API group are "User", "Group", and "ServiceAccount". If the Authorizer
does not recognized the kind value, the Authorizer should report
an error.
type: string
name:
description: Name of the object being referenced.
type: string
namespace:
description: Namespace of the referenced object. If the object kind
is non-namespace, such as "User" or "Group", and this value is not
empty the Authorizer should report an error.
type: string
required:
- kind
- name
type: object
type: array
required:
- roleRef
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,103 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: workspaceroles.iam.kubesphere.io
spec:
additionalPrinterColumns:
- JSONPath: .metadata.labels.kubesphere\.io/workspace
name: Workspace
type: string
- JSONPath: .metadata.annotations.kubesphere\.io/alias-name
name: Alias
type: string
group: iam.kubesphere.io
names:
categories:
- iam
kind: WorkspaceRole
listKind: WorkspaceRoleList
plural: workspaceroles
singular: workspacerole
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
description: Standard object's metadata.
type: object
rules:
description: Rules holds all the PolicyRules for this WorkspaceRole
items:
description: PolicyRule holds information that describes a policy rule,
but does not contain information about who the rule applies to or which
namespace the rule applies to.
properties:
apiGroups:
description: APIGroups is the name of the APIGroup that contains the
resources. If multiple API groups are specified, any action requested
against one of the enumerated resources in any API group will be
allowed.
items:
type: string
type: array
nonResourceURLs:
description: NonResourceURLs is a set of partial urls that a user
should have access to. *s are allowed, but only as the full, final
step in the path Since non-resource URLs are not namespaced, this
field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.
Rules can either apply to API resources (such as "pods" or "secrets")
or non-resource URL paths (such as "/api"), but not both.
items:
type: string
type: array
resourceNames:
description: ResourceNames is an optional white list of names that
the rule applies to. An empty set means that everything is allowed.
items:
type: string
type: array
resources:
description: Resources is a list of resources this rule applies to. ResourceAll
represents all resources.
items:
type: string
type: array
verbs:
description: Verbs is a list of Verbs that apply to ALL the ResourceKinds
and AttributeRestrictions contained in this rule. VerbAll represents
all kinds.
items:
type: string
type: array
required:
- verbs
type: object
type: array
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

1116
config/crds/istio-crds.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,763 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
controller-tools.k8s.io: "1.0"
name: destinationrules.istio.kubesphere.io
spec:
group: istio.kubesphere.io
names:
kind: DestinationRule
plural: destinationrules
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
host:
description: 'REQUIRED. The name of a service from the service registry.
Service names are looked up from the platform''s service registry
(e.g., Kubernetes services, Consul services, etc.) and from the hosts
declared by [ServiceEntries](#ServiceEntry). Rules defined for services
that do not exist in the service registry will be ignored. *Note
for Kubernetes users*: When short names are used (e.g. "reviews" instead
of "reviews.default.svc.cluster.local"), Istio will interpret the
short name based on the namespace of the rule, not the service. A
rule in the "default" namespace containing a host "reviews will be
interpreted as "reviews.default.svc.cluster.local", irrespective of
the actual namespace associated with the reviews service. _To avoid
potential misconfigurations, it is recommended to always use fully
qualified domain names over short names._ Note that the host field
applies to both HTTP and TCP services.'
type: string
subsets:
description: One or more named sets that represent individual versions
of a service. Traffic policies can be overridden at subset level.
items:
properties:
labels:
description: REQUIRED. Labels apply a filter over the endpoints
of a service in the service registry. See route rules for examples
of usage.
type: object
name:
description: REQUIRED. Name of the subset. The service name and
the subset name can be used for traffic splitting in a route
rule.
type: string
trafficPolicy:
description: Traffic policies that apply to this subset. Subsets
inherit the traffic policies specified at the DestinationRule
level. Settings specified at the subset level will override
the corresponding settings specified at the DestinationRule
level.
properties:
connectionPool:
description: Settings controlling the volume of connections
to an upstream service
properties:
http:
description: HTTP connection pool settings.
properties:
maxRequestsPerConnection:
description: Maximum number of requests per connection
to a backend. Setting this parameter to 1 disables
keep alive.
format: int32
type: integer
maxRetries:
description: Maximum number of retries that can be
outstanding to all hosts in a cluster at a given
time. Defaults to 3.
format: int32
type: integer
type: object
tcp:
description: Settings common to both HTTP and TCP upstream
connections.
properties:
connectTimeout:
description: TCP connection timeout.
type: string
maxConnections:
description: Maximum number of HTTP1 /TCP connections
to a destination host.
format: int32
type: integer
type: object
type: object
loadBalancer:
description: Settings controlling the load balancer algorithms.
properties:
consistentHash:
properties:
httpCookie:
description: Hash based on HTTP cookie.
properties:
name:
description: REQUIRED. Name of the cookie.
type: string
path:
description: Path to set for the cookie.
type: string
ttl:
description: REQUIRED. Lifetime of the cookie.
type: string
required:
- name
- ttl
type: object
httpHeaderName:
description: 'It is required to specify exactly one
of the fields as hash key: HttpHeaderName, HttpCookie,
or UseSourceIP. Hash based on a specific HTTP header.'
type: string
minimumRingSize:
description: The minimum number of virtual nodes to
use for the hash ring. Defaults to 1024. Larger
ring sizes result in more granular load distributions.
If the number of hosts in the load balancing pool
is larger than the ring size, each host will be
assigned a single virtual node.
format: int64
type: integer
useSourceIp:
description: Hash based on the source IP address.
type: boolean
type: object
simple:
description: 'It is required to specify exactly one of
the fields: Simple or ConsistentHash'
type: string
type: object
outlierDetection:
description: Settings controlling eviction of unhealthy hosts
from the load balancing pool
properties:
baseEjectionTime:
description: 'Minimum ejection duration. A host will remain
ejected for a period equal to the product of minimum
ejection duration and the number of times the host has
been ejected. This technique allows the system to automatically
increase the ejection period for unhealthy upstream
servers. format: 1h/1m/1s/1ms. MUST BE >=1ms. Default
is 30s.'
type: string
consecutiveErrors:
description: Number of errors before a host is ejected
from the connection pool. Defaults to 5. When the upstream
host is accessed over HTTP, a 5xx return code qualifies
as an error. When the upstream host is accessed over
an opaque TCP connection, connect timeouts and connection
error/failure events qualify as an error.
format: int32
type: integer
interval:
description: 'Time interval between ejection sweep analysis.
format: 1h/1m/1s/1ms. MUST BE >=1ms. Default is 10s.'
type: string
maxEjectionPercent:
description: Maximum % of hosts in the load balancing
pool for the upstream service that can be ejected. Defaults
to 10%.
format: int32
type: integer
type: object
portLevelSettings:
description: Traffic policies specific to individual ports.
Note that port level settings will override the destination-level
settings. Traffic settings specified at the destination-level
will not be inherited when overridden by port-level settings,
i.e. default values will be applied to fields omitted in
port-level traffic policies.
items:
properties:
connectionPool:
description: Settings controlling the volume of connections
to an upstream service
properties:
http:
description: HTTP connection pool settings.
properties:
maxRequestsPerConnection:
description: Maximum number of requests per
connection to a backend. Setting this parameter
to 1 disables keep alive.
format: int32
type: integer
maxRetries:
description: Maximum number of retries that
can be outstanding to all hosts in a cluster
at a given time. Defaults to 3.
format: int32
type: integer
type: object
tcp:
description: Settings common to both HTTP and TCP
upstream connections.
properties:
connectTimeout:
description: TCP connection timeout.
type: string
maxConnections:
description: Maximum number of HTTP1 /TCP connections
to a destination host.
format: int32
type: integer
type: object
type: object
loadBalancer:
description: Settings controlling the load balancer
algorithms.
properties:
consistentHash:
properties:
httpCookie:
description: Hash based on HTTP cookie.
properties:
name:
description: REQUIRED. Name of the cookie.
type: string
path:
description: Path to set for the cookie.
type: string
ttl:
description: REQUIRED. Lifetime of the cookie.
type: string
required:
- name
- ttl
type: object
httpHeaderName:
description: 'It is required to specify exactly
one of the fields as hash key: HttpHeaderName,
HttpCookie, or UseSourceIP. Hash based on
a specific HTTP header.'
type: string
minimumRingSize:
description: The minimum number of virtual nodes
to use for the hash ring. Defaults to 1024.
Larger ring sizes result in more granular
load distributions. If the number of hosts
in the load balancing pool is larger than
the ring size, each host will be assigned
a single virtual node.
format: int64
type: integer
useSourceIp:
description: Hash based on the source IP address.
type: boolean
type: object
simple:
description: 'It is required to specify exactly
one of the fields: Simple or ConsistentHash'
type: string
type: object
outlierDetection:
description: Settings controlling eviction of unhealthy
hosts from the load balancing pool
properties:
baseEjectionTime:
description: 'Minimum ejection duration. A host
will remain ejected for a period equal to the
product of minimum ejection duration and the number
of times the host has been ejected. This technique
allows the system to automatically increase the
ejection period for unhealthy upstream servers.
format: 1h/1m/1s/1ms. MUST BE >=1ms. Default is
30s.'
type: string
consecutiveErrors:
description: Number of errors before a host is ejected
from the connection pool. Defaults to 5. When
the upstream host is accessed over HTTP, a 5xx
return code qualifies as an error. When the upstream
host is accessed over an opaque TCP connection,
connect timeouts and connection error/failure
events qualify as an error.
format: int32
type: integer
interval:
description: 'Time interval between ejection sweep
analysis. format: 1h/1m/1s/1ms. MUST BE >=1ms.
Default is 10s.'
type: string
maxEjectionPercent:
description: Maximum % of hosts in the load balancing
pool for the upstream service that can be ejected.
Defaults to 10%.
format: int32
type: integer
type: object
port:
description: Specifies the port name or number of a
port on the destination service on which this policy
is being applied. Names must comply with DNS label
syntax (rfc1035) and therefore cannot collide with
numbers. If there are multiple ports on a service
with the same protocol the names should be of the
form <protocol-name>-<DNS label>.
properties:
name:
description: Valid port name
type: string
number:
description: Valid port number
format: int32
type: integer
type: object
tls:
description: TLS related settings for connections to
the upstream service.
properties:
caCertificates:
description: 'OPTIONAL: The path to the file containing
certificate authority certificates to use in verifying
a presented server certificate. If omitted, the
proxy will not verify the server''s certificate.
Should be empty if mode is `ISTIO_MUTUAL`.'
type: string
clientCertificate:
description: REQUIRED if mode is `MUTUAL`. The path
to the file holding the client-side TLS certificate
to use. Should be empty if mode is `ISTIO_MUTUAL`.
type: string
mode:
description: 'REQUIRED: Indicates whether connections
to this port should be secured using TLS. The
value of this field determines how TLS is enforced.'
type: string
privateKey:
description: REQUIRED if mode is `MUTUAL`. The path
to the file holding the client's private key.
Should be empty if mode is `ISTIO_MUTUAL`.
type: string
sni:
description: SNI string to present to the server
during TLS handshake. Should be empty if mode
is `ISTIO_MUTUAL`.
type: string
subjectAltNames:
description: A list of alternate names to verify
the subject identity in the certificate. If specified,
the proxy will verify that the server certificate's
subject alt name matches one of the specified
values. Should be empty if mode is `ISTIO_MUTUAL`.
items:
type: string
type: array
required:
- mode
type: object
required:
- port
type: object
type: array
tls:
description: TLS related settings for connections to the upstream
service.
properties:
caCertificates:
description: 'OPTIONAL: The path to the file containing
certificate authority certificates to use in verifying
a presented server certificate. If omitted, the proxy
will not verify the server''s certificate. Should be
empty if mode is `ISTIO_MUTUAL`.'
type: string
clientCertificate:
description: REQUIRED if mode is `MUTUAL`. The path to
the file holding the client-side TLS certificate to
use. Should be empty if mode is `ISTIO_MUTUAL`.
type: string
mode:
description: 'REQUIRED: Indicates whether connections
to this port should be secured using TLS. The value
of this field determines how TLS is enforced.'
type: string
privateKey:
description: REQUIRED if mode is `MUTUAL`. The path to
the file holding the client's private key. Should be
empty if mode is `ISTIO_MUTUAL`.
type: string
sni:
description: SNI string to present to the server during
TLS handshake. Should be empty if mode is `ISTIO_MUTUAL`.
type: string
subjectAltNames:
description: A list of alternate names to verify the subject
identity in the certificate. If specified, the proxy
will verify that the server certificate's subject alt
name matches one of the specified values. Should be
empty if mode is `ISTIO_MUTUAL`.
items:
type: string
type: array
required:
- mode
type: object
type: object
required:
- name
- labels
type: object
type: array
trafficPolicy:
description: Traffic policies to apply (load balancing policy, connection
pool sizes, outlier detection).
properties:
connectionPool:
description: Settings controlling the volume of connections to an
upstream service
properties:
http:
description: HTTP connection pool settings.
properties:
maxRequestsPerConnection:
description: Maximum number of requests per connection to
a backend. Setting this parameter to 1 disables keep alive.
format: int32
type: integer
maxRetries:
description: Maximum number of retries that can be outstanding
to all hosts in a cluster at a given time. Defaults to
3.
format: int32
type: integer
type: object
tcp:
description: Settings common to both HTTP and TCP upstream connections.
properties:
connectTimeout:
description: TCP connection timeout.
type: string
maxConnections:
description: Maximum number of HTTP1 /TCP connections to
a destination host.
format: int32
type: integer
type: object
type: object
loadBalancer:
description: Settings controlling the load balancer algorithms.
properties:
consistentHash:
properties:
httpCookie:
description: Hash based on HTTP cookie.
properties:
name:
description: REQUIRED. Name of the cookie.
type: string
path:
description: Path to set for the cookie.
type: string
ttl:
description: REQUIRED. Lifetime of the cookie.
type: string
required:
- name
- ttl
type: object
httpHeaderName:
description: 'It is required to specify exactly one of the
fields as hash key: HttpHeaderName, HttpCookie, or UseSourceIP.
Hash based on a specific HTTP header.'
type: string
minimumRingSize:
description: The minimum number of virtual nodes to use
for the hash ring. Defaults to 1024. Larger ring sizes
result in more granular load distributions. If the number
of hosts in the load balancing pool is larger than the
ring size, each host will be assigned a single virtual
node.
format: int64
type: integer
useSourceIp:
description: Hash based on the source IP address.
type: boolean
type: object
simple:
description: 'It is required to specify exactly one of the fields:
Simple or ConsistentHash'
type: string
type: object
outlierDetection:
description: Settings controlling eviction of unhealthy hosts from
the load balancing pool
properties:
baseEjectionTime:
description: 'Minimum ejection duration. A host will remain
ejected for a period equal to the product of minimum ejection
duration and the number of times the host has been ejected.
This technique allows the system to automatically increase
the ejection period for unhealthy upstream servers. format:
1h/1m/1s/1ms. MUST BE >=1ms. Default is 30s.'
type: string
consecutiveErrors:
description: Number of errors before a host is ejected from
the connection pool. Defaults to 5. When the upstream host
is accessed over HTTP, a 5xx return code qualifies as an error.
When the upstream host is accessed over an opaque TCP connection,
connect timeouts and connection error/failure events qualify
as an error.
format: int32
type: integer
interval:
description: 'Time interval between ejection sweep analysis.
format: 1h/1m/1s/1ms. MUST BE >=1ms. Default is 10s.'
type: string
maxEjectionPercent:
description: Maximum % of hosts in the load balancing pool for
the upstream service that can be ejected. Defaults to 10%.
format: int32
type: integer
type: object
portLevelSettings:
description: Traffic policies specific to individual ports. Note
that port level settings will override the destination-level settings.
Traffic settings specified at the destination-level will not be
inherited when overridden by port-level settings, i.e. default
values will be applied to fields omitted in port-level traffic
policies.
items:
properties:
connectionPool:
description: Settings controlling the volume of connections
to an upstream service
properties:
http:
description: HTTP connection pool settings.
properties:
maxRequestsPerConnection:
description: Maximum number of requests per connection
to a backend. Setting this parameter to 1 disables
keep alive.
format: int32
type: integer
maxRetries:
description: Maximum number of retries that can be
outstanding to all hosts in a cluster at a given
time. Defaults to 3.
format: int32
type: integer
type: object
tcp:
description: Settings common to both HTTP and TCP upstream
connections.
properties:
connectTimeout:
description: TCP connection timeout.
type: string
maxConnections:
description: Maximum number of HTTP1 /TCP connections
to a destination host.
format: int32
type: integer
type: object
type: object
loadBalancer:
description: Settings controlling the load balancer algorithms.
properties:
consistentHash:
properties:
httpCookie:
description: Hash based on HTTP cookie.
properties:
name:
description: REQUIRED. Name of the cookie.
type: string
path:
description: Path to set for the cookie.
type: string
ttl:
description: REQUIRED. Lifetime of the cookie.
type: string
required:
- name
- ttl
type: object
httpHeaderName:
description: 'It is required to specify exactly one
of the fields as hash key: HttpHeaderName, HttpCookie,
or UseSourceIP. Hash based on a specific HTTP header.'
type: string
minimumRingSize:
description: The minimum number of virtual nodes to
use for the hash ring. Defaults to 1024. Larger
ring sizes result in more granular load distributions.
If the number of hosts in the load balancing pool
is larger than the ring size, each host will be
assigned a single virtual node.
format: int64
type: integer
useSourceIp:
description: Hash based on the source IP address.
type: boolean
type: object
simple:
description: 'It is required to specify exactly one of
the fields: Simple or ConsistentHash'
type: string
type: object
outlierDetection:
description: Settings controlling eviction of unhealthy hosts
from the load balancing pool
properties:
baseEjectionTime:
description: 'Minimum ejection duration. A host will remain
ejected for a period equal to the product of minimum
ejection duration and the number of times the host has
been ejected. This technique allows the system to automatically
increase the ejection period for unhealthy upstream
servers. format: 1h/1m/1s/1ms. MUST BE >=1ms. Default
is 30s.'
type: string
consecutiveErrors:
description: Number of errors before a host is ejected
from the connection pool. Defaults to 5. When the upstream
host is accessed over HTTP, a 5xx return code qualifies
as an error. When the upstream host is accessed over
an opaque TCP connection, connect timeouts and connection
error/failure events qualify as an error.
format: int32
type: integer
interval:
description: 'Time interval between ejection sweep analysis.
format: 1h/1m/1s/1ms. MUST BE >=1ms. Default is 10s.'
type: string
maxEjectionPercent:
description: Maximum % of hosts in the load balancing
pool for the upstream service that can be ejected. Defaults
to 10%.
format: int32
type: integer
type: object
port:
description: Specifies the port name or number of a port on
the destination service on which this policy is being applied. Names
must comply with DNS label syntax (rfc1035) and therefore
cannot collide with numbers. If there are multiple ports
on a service with the same protocol the names should be
of the form <protocol-name>-<DNS label>.
properties:
name:
description: Valid port name
type: string
number:
description: Valid port number
format: int32
type: integer
type: object
tls:
description: TLS related settings for connections to the upstream
service.
properties:
caCertificates:
description: 'OPTIONAL: The path to the file containing
certificate authority certificates to use in verifying
a presented server certificate. If omitted, the proxy
will not verify the server''s certificate. Should be
empty if mode is `ISTIO_MUTUAL`.'
type: string
clientCertificate:
description: REQUIRED if mode is `MUTUAL`. The path to
the file holding the client-side TLS certificate to
use. Should be empty if mode is `ISTIO_MUTUAL`.
type: string
mode:
description: 'REQUIRED: Indicates whether connections
to this port should be secured using TLS. The value
of this field determines how TLS is enforced.'
type: string
privateKey:
description: REQUIRED if mode is `MUTUAL`. The path to
the file holding the client's private key. Should be
empty if mode is `ISTIO_MUTUAL`.
type: string
sni:
description: SNI string to present to the server during
TLS handshake. Should be empty if mode is `ISTIO_MUTUAL`.
type: string
subjectAltNames:
description: A list of alternate names to verify the subject
identity in the certificate. If specified, the proxy
will verify that the server certificate's subject alt
name matches one of the specified values. Should be
empty if mode is `ISTIO_MUTUAL`.
items:
type: string
type: array
required:
- mode
type: object
required:
- port
type: object
type: array
tls:
description: TLS related settings for connections to the upstream
service.
properties:
caCertificates:
description: 'OPTIONAL: The path to the file containing certificate
authority certificates to use in verifying a presented server
certificate. If omitted, the proxy will not verify the server''s
certificate. Should be empty if mode is `ISTIO_MUTUAL`.'
type: string
clientCertificate:
description: REQUIRED if mode is `MUTUAL`. The path to the file
holding the client-side TLS certificate to use. Should be
empty if mode is `ISTIO_MUTUAL`.
type: string
mode:
description: 'REQUIRED: Indicates whether connections to this
port should be secured using TLS. The value of this field
determines how TLS is enforced.'
type: string
privateKey:
description: REQUIRED if mode is `MUTUAL`. The path to the file
holding the client's private key. Should be empty if mode
is `ISTIO_MUTUAL`.
type: string
sni:
description: SNI string to present to the server during TLS
handshake. Should be empty if mode is `ISTIO_MUTUAL`.
type: string
subjectAltNames:
description: A list of alternate names to verify the subject
identity in the certificate. If specified, the proxy will
verify that the server certificate's subject alt name matches
one of the specified values. Should be empty if mode is `ISTIO_MUTUAL`.
items:
type: string
type: array
required:
- mode
type: object
type: object
required:
- host
type: object
required:
- spec
version: v1alpha3
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

129
config/crds/istio_v1alpha3_gateway.yaml generated Normal file
View File

@@ -0,0 +1,129 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
controller-tools.k8s.io: "1.0"
name: gateways.istio.kubesphere.io
spec:
group: istio.kubesphere.io
names:
kind: Gateway
plural: gateways
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
selector:
description: One or more labels that indicate a specific set of pods/VMs
on which this gateway configuration should be applied. If no selectors
are provided, the gateway will be implemented by the default istio-ingress
controller.
type: object
servers:
description: 'REQUIRED: A list of server specifications.'
items:
properties:
hosts:
description: A list of hosts exposed by this gateway. While typically
applicable to HTTP services, it can also be used for TCP services
using TLS with SNI. Standard DNS wildcard prefix syntax is permitted. A
VirtualService that is bound to a gateway must having a matching
host in its default destination. Specifically one of the VirtualService
destination hosts is a strict suffix of a gateway host or a
gateway host is a suffix of one of the VirtualService hosts.
items:
type: string
type: array
port:
description: 'REQUIRED: The Port on which the proxy should listen
for incoming connections'
properties:
name:
description: Label assigned to the port.
type: string
number:
description: 'REQUIRED: A valid non-negative integer port
number.'
format: int64
type: integer
protocol:
description: 'REQUIRED: The protocol exposed on the port.
MUST BE one of HTTP|HTTPS|GRPC|HTTP2|MONGO|TCP.'
type: string
required:
- number
- protocol
type: object
tls:
description: Set of TLS related options that govern the server's
behavior. Use these options to control if all http requests
should be redirected to https, and the TLS modes to use.
properties:
caCertificates:
description: REQUIRED if mode is "MUTUAL". The path to a file
containing certificate authority certificates to use in
verifying a presented client side certificate.
type: string
httpsRedirect:
description: If set to true, the load balancer will send a
302 redirect for all http connections, asking the clients
to use HTTPS.
type: boolean
mode:
description: 'Optional: Indicates whether connections to this
port should be secured using TLS. The value of this field
determines how TLS is enforced.'
type: string
privateKey:
description: REQUIRED if mode is "SIMPLE" or "MUTUAL". The
path to the file holding the server's private key.
type: string
serverCertificate:
description: REQUIRED if mode is "SIMPLE" or "MUTUAL". The
path to the file holding the server-side TLS certificate
to use.
type: string
subjectAltNames:
description: A list of alternate names to verify the subject
identity in the certificate presented by the client.
items:
type: string
type: array
required:
- httpsRedirect
- serverCertificate
- privateKey
- caCertificates
- subjectAltNames
type: object
required:
- port
type: object
type: array
required:
- servers
type: object
required:
- spec
version: v1alpha3
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,695 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
controller-tools.k8s.io: "1.0"
name: virtualservices.istio.kubesphere.io
spec:
group: istio.kubesphere.io
names:
kind: VirtualService
plural: virtualservices
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
gateways:
description: The names of gateways and sidecars that should apply these
routes. A single VirtualService is used for sidecars inside the mesh
as well as for one or more gateways. The selection condition imposed
by this field can be overridden using the source field in the match
conditions of HTTP/TCP routes. The reserved word "mesh" is used to
imply all the sidecars in the mesh. When this field is omitted, the
default gateway ("mesh") will be used, which would apply the rule
to all sidecars in the mesh. If a list of gateway names is provided,
the rules will apply only to the gateways. To apply the rules to both
gateways and sidecars, specify "mesh" as one of the gateway names.
items:
type: string
type: array
hosts:
description: REQUIRED. The destination address for traffic captured
by this virtual service. Could be a DNS name with wildcard prefix
or a CIDR prefix. Depending on the platform, short-names can also
be used instead of a FQDN (i.e. has no dots in the name). In such
a scenario, the FQDN of the host would be derived based on the underlying
platform. For example on Kubernetes, when hosts contains a short
name, Istio will interpret the short name based on the namespace of
the rule. Thus, when a client namespace applies a rule in the "default"
namespace containing a name "reviews, Istio will setup routes to the
"reviews.default.svc.cluster.local" service. However, if a different
name such as "reviews.sales.svc.cluster.local" is used, it would be
treated as a FQDN during virtual host matching. In Consul, a plain
service name would be resolved to the FQDN "reviews.service.consul". Note
that the hosts field applies to both HTTP and TCP services. Service
inside the mesh, i.e., those found in the service registry, must always
be referred to using their alphanumeric names. IP addresses or CIDR
prefixes are allowed only for services defined via the Gateway.
items:
type: string
type: array
http:
description: An ordered list of route rules for HTTP traffic. The first
rule matching an incoming request is used.
items:
properties:
appendHeaders:
description: Additional HTTP headers to add before forwarding
a request to the destination service.
type: object
corsPolicy:
description: Cross-Origin Resource Sharing policy
properties:
allowCredentials:
description: Indicates whether the caller is allowed to send
the actual request (not the preflight) using credentials.
Translates to Access-Control-Allow-Credentials header.
type: boolean
allowHeaders:
description: List of HTTP headers that can be used when requesting
the resource. Serialized to Access-Control-Allow-Methods
header.
items:
type: string
type: array
allowMethods:
description: List of HTTP methods allowed to access the resource.
The content will be serialized into the Access-Control-Allow-Methods
header.
items:
type: string
type: array
allowOrigin:
description: The list of origins that are allowed to perform
CORS requests. The content will be serialized into the Access-Control-Allow-Origin
header. Wildcard * will allow all origins.
items:
type: string
type: array
exposeHeaders:
description: A white list of HTTP headers that the browsers
are allowed to access. Serialized into Access-Control-Expose-Headers
header.
items:
type: string
type: array
maxAge:
description: Specifies how long the the results of a preflight
request can be cached. Translates to the Access-Control-Max-Age
header.
type: string
type: object
fault:
description: Fault injection policy to apply on HTTP traffic.
properties:
abort:
description: Abort Http request attempts and return error
codes back to downstream service, giving the impression
that the upstream service is faulty.
properties:
httpStatus:
description: REQUIRED. HTTP status code to use to abort
the Http request.
format: int64
type: integer
percent:
description: Percentage of requests to be aborted with
the error code provided (0-100).
format: int64
type: integer
required:
- httpStatus
type: object
delay:
description: Delay requests before forwarding, emulating various
failures such as network issues, overloaded upstream service,
etc.
properties:
exponentialDelay:
description: (-- Add a delay (based on an exponential
function) before forwarding the request. mean delay
needed to derive the exponential delay values --)
type: string
fixedDelay:
description: 'REQUIRED. Add a fixed delay before forwarding
the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.'
type: string
percent:
description: Percentage of requests on which the delay
will be injected (0-100).
format: int64
type: integer
required:
- fixedDelay
type: object
type: object
match:
description: Match conditions to be satisfied for the rule to
be activated. All conditions inside a single match block have
AND semantics, while the list of match blocks have OR semantics.
The rule is matched if any one of the match blocks succeed.
items:
properties:
authority:
description: 'HTTP Authority values are case-sensitive and
formatted as follows: - `exact: "value"` for exact string
match - `prefix: "value"` for prefix-based match - `regex:
"value"` for ECMAscript style regex-based match'
properties:
exact:
description: exact string match
type: string
prefix:
description: prefix-based match
type: string
regex:
description: ECMAscript style regex-based match
type: string
suffix:
description: suffix-based match.
type: string
type: object
gateways:
description: Names of gateways where the rule should be
applied to. Gateway names at the top of the VirtualService
(if any) are overridden. The gateway match is independent
of sourceLabels.
items:
type: string
type: array
headers:
description: 'The header keys must be lowercase and use
hyphen as the separator, e.g. _x-request-id_. Header
values are case-sensitive and formatted as follows: -
`exact: "value"` for exact string match - `prefix: "value"`
for prefix-based match - `regex: "value"` for ECMAscript
style regex-based match **Note:** The keys `uri`, `scheme`,
`method`, and `authority` will be ignored.'
type: object
method:
description: 'HTTP Method values are case-sensitive and
formatted as follows: - `exact: "value"` for exact string
match - `prefix: "value"` for prefix-based match - `regex:
"value"` for ECMAscript style regex-based match'
properties:
exact:
description: exact string match
type: string
prefix:
description: prefix-based match
type: string
regex:
description: ECMAscript style regex-based match
type: string
suffix:
description: suffix-based match.
type: string
type: object
port:
description: Specifies the ports on the host that is being
addressed. Many services only expose a single port or
label ports with the protocols they support, in these
cases it is not required to explicitly select the port.
format: int32
type: integer
scheme:
description: 'URI Scheme values are case-sensitive and formatted
as follows: - `exact: "value"` for exact string match -
`prefix: "value"` for prefix-based match - `regex: "value"`
for ECMAscript style regex-based match'
properties:
exact:
description: exact string match
type: string
prefix:
description: prefix-based match
type: string
regex:
description: ECMAscript style regex-based match
type: string
suffix:
description: suffix-based match.
type: string
type: object
sourceLabels:
description: One or more labels that constrain the applicability
of a rule to workloads with the given labels. If the VirtualService
has a list of gateways specified at the top, it should
include the reserved gateway `mesh` in order for this
field to be applicable.
type: object
uri:
description: 'URI to match values are case-sensitive and
formatted as follows: - `exact: "value"` for exact string
match - `prefix: "value"` for prefix-based match - `regex:
"value"` for ECMAscript style regex-based match'
properties:
exact:
description: exact string match
type: string
prefix:
description: prefix-based match
type: string
regex:
description: ECMAscript style regex-based match
type: string
suffix:
description: suffix-based match.
type: string
type: object
type: object
type: array
mirror:
description: Mirror HTTP traffic to a another destination in addition
to forwarding the requests to the intended destination. Mirrored
traffic is on a best effort basis where the sidecar/gateway
will not wait for the mirrored cluster to respond before returning
the response from the original destination. Statistics will
be generated for the mirrored destination.
properties:
host:
description: 'REQUIRED. The name of a service from the service
registry. Service names are looked up from the platform''s
service registry (e.g., Kubernetes services, Consul services,
etc.) and from the hosts declared by [ServiceEntry](#ServiceEntry).
Traffic forwarded to destinations that are not found in
either of the two, will be dropped. *Note for Kubernetes
users*: When short names are used (e.g. "reviews" instead
of "reviews.default.svc.cluster.local"), Istio will interpret
the short name based on the namespace of the rule, not the
service. A rule in the "default" namespace containing a
host "reviews will be interpreted as "reviews.default.svc.cluster.local",
irrespective of the actual namespace associated with the
reviews service. _To avoid potential misconfigurations,
it is recommended to always use fully qualified domain names
over short names._'
type: string
port:
description: Specifies the port on the host that is being
addressed. If a service exposes only a single port it is
not required to explicitly select the port.
properties:
name:
description: Valid port name
type: string
number:
description: Valid port number
format: int32
type: integer
type: object
subset:
description: The name of a subset within the service. Applicable
only to services within the mesh. The subset must be defined
in a corresponding DestinationRule.
type: string
required:
- host
type: object
redirect:
description: A http rule can either redirect or forward (default)
traffic. If traffic passthrough option is specified in the rule,
route/redirect will be ignored. The redirect primitive can be
used to send a HTTP 302 redirect to a different URI or Authority.
properties:
authority:
description: On a redirect, overwrite the Authority/Host portion
of the URL with this value.
type: string
uri:
description: On a redirect, overwrite the Path portion of
the URL with this value. Note that the entire path will
be replaced, irrespective of the request URI being matched
as an exact path or prefix.
type: string
type: object
removeResponseHeaders:
description: Http headers to remove before returning the response
to the caller
type: object
retries:
description: Retry policy for HTTP requests.
properties:
attempts:
description: REQUIRED. Number of retries for a given request.
The interval between retries will be determined automatically
(25ms+). Actual number of retries attempted depends on the
httpReqTimeout.
format: int64
type: integer
perTryTimeout:
description: 'Timeout per retry attempt for a given request.
format: 1h/1m/1s/1ms. MUST BE >=1ms.'
type: string
required:
- attempts
- perTryTimeout
type: object
rewrite:
description: Rewrite HTTP URIs and Authority headers. Rewrite
cannot be used with Redirect primitive. Rewrite will be performed
before forwarding.
properties:
authority:
description: rewrite the Authority/Host header with this value.
type: string
uri:
description: rewrite the path (or the prefix) portion of the
URI with this value. If the original URI was matched based
on prefix, the value provided in this field will replace
the corresponding matched prefix.
type: string
type: object
route:
description: A http rule can either redirect or forward (default)
traffic. The forwarding target can be one of several versions
of a service (see glossary in beginning of document). Weights
associated with the service version determine the proportion
of traffic it receives.
items:
properties:
destination:
description: REQUIRED. Destination uniquely identifies the
instances of a service to which the request/connection
should be forwarded to.
properties:
host:
description: 'REQUIRED. The name of a service from the
service registry. Service names are looked up from
the platform''s service registry (e.g., Kubernetes
services, Consul services, etc.) and from the hosts
declared by [ServiceEntry](#ServiceEntry). Traffic
forwarded to destinations that are not found in either
of the two, will be dropped. *Note for Kubernetes
users*: When short names are used (e.g. "reviews"
instead of "reviews.default.svc.cluster.local"), Istio
will interpret the short name based on the namespace
of the rule, not the service. A rule in the "default"
namespace containing a host "reviews will be interpreted
as "reviews.default.svc.cluster.local", irrespective
of the actual namespace associated with the reviews
service. _To avoid potential misconfigurations, it
is recommended to always use fully qualified domain
names over short names._'
type: string
port:
description: Specifies the port on the host that is
being addressed. If a service exposes only a single
port it is not required to explicitly select the port.
properties:
name:
description: Valid port name
type: string
number:
description: Valid port number
format: int32
type: integer
type: object
subset:
description: The name of a subset within the service.
Applicable only to services within the mesh. The subset
must be defined in a corresponding DestinationRule.
type: string
required:
- host
type: object
weight:
description: REQUIRED. The proportion of traffic to be forwarded
to the service version. (0-100). Sum of weights across
destinations SHOULD BE == 100. If there is only destination
in a rule, the weight value is assumed to be 100.
format: int64
type: integer
required:
- destination
- weight
type: object
type: array
timeout:
description: Timeout for HTTP requests.
type: string
websocketUpgrade:
description: Indicates that a HTTP/1.1 client connection to this
particular route should be allowed (and expected) to upgrade
to a WebSocket connection. The default is false. Istio's reference
sidecar implementation (Envoy) expects the first request to
this route to contain the WebSocket upgrade headers. Otherwise,
the request will be rejected. Note that Websocket allows secondary
protocol negotiation which may then be subject to further routing
rules based on the protocol selected.
type: boolean
type: object
type: array
tcp:
description: An ordered list of route rules for TCP traffic. The first
rule matching an incoming request is used.
items:
properties:
match:
description: Match conditions to be satisfied for the rule to
be activated. All conditions inside a single match block have
AND semantics, while the list of match blocks have OR semantics.
The rule is matched if any one of the match blocks succeed.
items:
properties:
destinationSubnets:
description: IPv4 or IPv6 ip address of destination with
optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d.
items:
type: string
type: array
gateways:
description: Names of gateways where the rule should be
applied to. Gateway names at the top of the VirtualService
(if any) are overridden. The gateway match is independent
of sourceLabels.
items:
type: string
type: array
port:
description: Specifies the port on the host that is being
addressed. Many services only expose a single port or
label ports with the protocols they support, in these
cases it is not required to explicitly select the port.
format: int64
type: integer
sourceLabels:
description: One or more labels that constrain the applicability
of a rule to workloads with the given labels. If the VirtualService
has a list of gateways specified at the top, it should
include the reserved gateway `mesh` in order for this
field to be applicable.
type: object
type: object
type: array
route:
description: The destinations to which the connection should be
forwarded to. Weights must add to 100%.
items:
properties:
destination:
description: REQUIRED. Destination uniquely identifies the
instances of a service to which the request/connection
should be forwarded to.
properties:
host:
description: 'REQUIRED. The name of a service from the
service registry. Service names are looked up from
the platform''s service registry (e.g., Kubernetes
services, Consul services, etc.) and from the hosts
declared by [ServiceEntry](#ServiceEntry). Traffic
forwarded to destinations that are not found in either
of the two, will be dropped. *Note for Kubernetes
users*: When short names are used (e.g. "reviews"
instead of "reviews.default.svc.cluster.local"), Istio
will interpret the short name based on the namespace
of the rule, not the service. A rule in the "default"
namespace containing a host "reviews will be interpreted
as "reviews.default.svc.cluster.local", irrespective
of the actual namespace associated with the reviews
service. _To avoid potential misconfigurations, it
is recommended to always use fully qualified domain
names over short names._'
type: string
port:
description: Specifies the port on the host that is
being addressed. If a service exposes only a single
port it is not required to explicitly select the port.
properties:
name:
description: Valid port name
type: string
number:
description: Valid port number
format: int32
type: integer
type: object
subset:
description: The name of a subset within the service.
Applicable only to services within the mesh. The subset
must be defined in a corresponding DestinationRule.
type: string
required:
- host
type: object
weight:
description: REQUIRED. The proportion of traffic to be forwarded
to the service version. (0-100). Sum of weights across
destinations SHOULD BE == 100. If there is only destination
in a rule, the weight value is assumed to be 100.
format: int64
type: integer
required:
- destination
- weight
type: object
type: array
required:
- match
- route
type: object
type: array
tls:
items:
properties:
match:
description: REQUIRED. Match conditions to be satisfied for the
rule to be activated. All conditions inside a single match block
have AND semantics, while the list of match blocks have OR semantics.
The rule is matched if any one of the match blocks succeed.
items:
properties:
destinationSubnets:
description: IPv4 or IPv6 ip addresses of destination with
optional subnet. E.g., a.b.c.d/xx form or just a.b.c.d.
items:
type: string
type: array
gateways:
description: Names of gateways where the rule should be
applied to. Gateway names at the top of the VirtualService
(if any) are overridden. The gateway match is independent
of sourceLabels.
items:
type: string
type: array
port:
description: Specifies the port on the host that is being
addressed. Many services only expose a single port or
label ports with the protocols they support, in these
cases it is not required to explicitly select the port.
format: int64
type: integer
sniHosts:
description: REQUIRED. SNI (server name indicator) to match
on. Wildcard prefixes can be used in the SNI value, e.g.,
*.com will match foo.example.com as well as example.com.
An SNI value must be a subset (i.e., fall within the domain)
of the corresponding virtual service's hosts
items:
type: string
type: array
sourceLabels:
description: One or more labels that constrain the applicability
of a rule to workloads with the given labels. If the VirtualService
has a list of gateways specified at the top, it should
include the reserved gateway `mesh` in order for this
field to be applicable.
type: object
required:
- sniHosts
type: object
type: array
route:
description: The destination to which the connection should be
forwarded to.
items:
properties:
destination:
description: REQUIRED. Destination uniquely identifies the
instances of a service to which the request/connection
should be forwarded to.
properties:
host:
description: 'REQUIRED. The name of a service from the
service registry. Service names are looked up from
the platform''s service registry (e.g., Kubernetes
services, Consul services, etc.) and from the hosts
declared by [ServiceEntry](#ServiceEntry). Traffic
forwarded to destinations that are not found in either
of the two, will be dropped. *Note for Kubernetes
users*: When short names are used (e.g. "reviews"
instead of "reviews.default.svc.cluster.local"), Istio
will interpret the short name based on the namespace
of the rule, not the service. A rule in the "default"
namespace containing a host "reviews will be interpreted
as "reviews.default.svc.cluster.local", irrespective
of the actual namespace associated with the reviews
service. _To avoid potential misconfigurations, it
is recommended to always use fully qualified domain
names over short names._'
type: string
port:
description: Specifies the port on the host that is
being addressed. If a service exposes only a single
port it is not required to explicitly select the port.
properties:
name:
description: Valid port name
type: string
number:
description: Valid port number
format: int32
type: integer
type: object
subset:
description: The name of a subset within the service.
Applicable only to services within the mesh. The subset
must be defined in a corresponding DestinationRule.
type: string
required:
- host
type: object
weight:
description: REQUIRED. The proportion of traffic to be forwarded
to the service version. (0-100). Sum of weights across
destinations SHOULD BE == 100. If there is only destination
in a rule, the weight value is assumed to be 100.
format: int64
type: integer
required:
- destination
- weight
type: object
type: array
required:
- match
- route
type: object
type: array
required:
- hosts
type: object
required:
- spec
version: v1alpha3
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,259 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: namespacenetworkpolicies.network.kubesphere.io
spec:
group: network.kubesphere.io
names:
categories:
- networking
kind: NamespaceNetworkPolicy
listKind: NamespaceNetworkPolicyList
plural: namespacenetworkpolicies
shortNames:
- nsnp
singular: namespacenetworkpolicy
scope: Namespaced
validation:
openAPIV3Schema:
description: NamespaceNetworkPolicy is the Schema for the namespacenetworkpolicies
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: NamespaceNetworkPolicySpec provides the specification of a
NamespaceNetworkPolicy
properties:
egress:
description: List of egress rules to be applied to the selected pods.
Outgoing traffic is allowed if there are no NetworkPolicies selecting
the pod (and cluster policy otherwise allows the traffic), OR if the
traffic matches at least one egress rule across all of the NetworkPolicy
objects whose podSelector matches the pod. If this field is empty
then this NetworkPolicy limits all outgoing traffic (and serves solely
to ensure that the pods it selects are isolated by default). This
field is beta-level in 1.8
items:
description: NetworkPolicyEgressRule describes a particular set of
traffic that is allowed out of pods matched by a NetworkPolicySpec's
podSelector. The traffic must match both ports and to. This type
is beta-level in 1.8
properties:
ports:
description: List of destination ports for outgoing traffic. Each
item in this list is combined using a logical OR. If this field
is empty or missing, this rule matches all ports (traffic not
restricted by port). If this field is present and contains at
least one item, then this rule allows traffic only if the traffic
matches at least one port in the list.
items:
description: NetworkPolicyPort describes a port to allow traffic
on
properties:
port:
anyOf:
- type: integer
- type: string
description: The port on the given protocol. This can either
be a numerical or named port on a pod. If this field is
not provided, this matches all port names and numbers.
x-kubernetes-int-or-string: true
protocol:
description: The protocol (TCP, UDP, or SCTP) which traffic
must match. If not specified, this field defaults to TCP.
type: string
type: object
type: array
to:
description: List of destinations for outgoing traffic of pods
selected for this rule. Items in this list are combined using
a logical OR operation. If this field is empty or missing, this
rule matches all destinations (traffic not restricted by destination).
If this field is present and contains at least one item, this
rule allows traffic only if the traffic matches at least one
item in the to list.
items:
description: NetworkPolicyPeer describes a peer to allow traffic
from. Only certain combinations of fields are allowed
properties:
ipBlock:
description: IPBlock defines policy on a particular IPBlock.
If this field is set then neither of the other fields
can be.
properties:
cidr:
description: CIDR is a string representing the IP Block
Valid examples are "192.168.1.1/24"
type: string
except:
description: Except is a slice of CIDRs that should
not be included within an IP Block Valid examples
are "192.168.1.1/24" Except values will be rejected
if they are outside the CIDR range
items:
type: string
type: array
required:
- cidr
type: object
namespace:
properties:
name:
type: string
required:
- name
type: object
service:
properties:
name:
type: string
namespace:
type: string
required:
- name
- namespace
type: object
type: object
type: array
type: object
type: array
ingress:
description: List of ingress rules to be applied to the selected pods.
Traffic is allowed to a pod if there are no NetworkPolicies selecting
the pod (and cluster policy otherwise allows the traffic), OR if the
traffic source is the pod's local node, OR if the traffic matches
at least one ingress rule across all of the NetworkPolicy objects
whose podSelector matches the pod. If this field is empty then this
NetworkPolicy does not allow any traffic (and serves solely to ensure
that the pods it selects are isolated by default)
items:
description: NetworkPolicyIngressRule describes a particular set of
traffic that is allowed to the pods matched by a NetworkPolicySpec's
podSelector. The traffic must match both ports and from.
properties:
from:
description: List of sources which should be able to access the
pods selected for this rule. Items in this list are combined
using a logical OR operation. If this field is empty or missing,
this rule matches all sources (traffic not restricted by source).
If this field is present and contains at least one item, this
rule allows traffic only if the traffic matches at least one
item in the from list.
items:
description: NetworkPolicyPeer describes a peer to allow traffic
from. Only certain combinations of fields are allowed
properties:
ipBlock:
description: IPBlock defines policy on a particular IPBlock.
If this field is set then neither of the other fields
can be.
properties:
cidr:
description: CIDR is a string representing the IP Block
Valid examples are "192.168.1.1/24"
type: string
except:
description: Except is a slice of CIDRs that should
not be included within an IP Block Valid examples
are "192.168.1.1/24" Except values will be rejected
if they are outside the CIDR range
items:
type: string
type: array
required:
- cidr
type: object
namespace:
properties:
name:
type: string
required:
- name
type: object
service:
properties:
name:
type: string
namespace:
type: string
required:
- name
- namespace
type: object
type: object
type: array
ports:
description: List of ports which should be made accessible on
the pods selected for this rule. Each item in this list is combined
using a logical OR. If this field is empty or missing, this
rule matches all ports (traffic not restricted by port). If
this field is present and contains at least one item, then this
rule allows traffic only if the traffic matches at least one
port in the list.
items:
description: NetworkPolicyPort describes a port to allow traffic
on
properties:
port:
anyOf:
- type: integer
- type: string
description: The port on the given protocol. This can either
be a numerical or named port on a pod. If this field is
not provided, this matches all port names and numbers.
x-kubernetes-int-or-string: true
protocol:
description: The protocol (TCP, UDP, or SCTP) which traffic
must match. If not specified, this field defaults to TCP.
type: string
type: object
type: array
type: object
type: array
policyTypes:
description: List of rule types that the NetworkPolicy relates to. Valid
options are "Ingress", "Egress", or "Ingress,Egress". If this field
is not specified, it will default based on the existence of Ingress
or Egress rules; policies that contain an Egress section are assumed
to affect Egress, and all policies (whether or not they contain an
Ingress section) are assumed to affect Ingress. If you want to write
an egress-only policy, you must explicitly specify policyTypes [ "Egress"
]. Likewise, if you want to write a policy that specifies that no
egress is allowed, you must specify a policyTypes value that include
"Egress" (since such a policy would not include an Egress section
and would otherwise default to just [ "Ingress" ]). This field is
beta-level in 1.8
items:
description: Policy Type string describes the NetworkPolicy type This
type is beta-level in 1.8
type: string
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,503 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.5
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260"
creationTimestamp: null
name: volumesnapshotclasses.snapshot.storage.k8s.io
spec:
additionalPrinterColumns:
- JSONPath: .driver
name: Driver
type: string
- JSONPath: .deletionPolicy
description: Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass
should be deleted when its bound VolumeSnapshot is deleted.
name: DeletionPolicy
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: snapshot.storage.k8s.io
names:
kind: VolumeSnapshotClass
listKind: VolumeSnapshotClassList
plural: volumesnapshotclasses
singular: volumesnapshotclass
preserveUnknownFields: false
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: VolumeSnapshotClass specifies parameters that a underlying storage
system uses when creating a volume snapshot. A specific VolumeSnapshotClass
is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses
are non-namespaced
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
deletionPolicy:
description: deletionPolicy determines whether a VolumeSnapshotContent created
through the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot
is deleted. Supported values are "Retain" and "Delete". "Retain" means
that the VolumeSnapshotContent and its physical snapshot on underlying
storage system are kept. "Delete" means that the VolumeSnapshotContent
and its physical snapshot on underlying storage system are deleted. Required.
enum:
- Delete
- Retain
type: string
driver:
description: driver is the name of the storage driver that handles this
VolumeSnapshotClass. Required.
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
parameters:
additionalProperties:
type: string
description: parameters is a key-value map with storage driver specific
parameters for creating snapshots. These values are opaque to Kubernetes.
type: object
required:
- deletionPolicy
- driver
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.5
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260"
creationTimestamp: null
name: volumesnapshotcontents.snapshot.storage.k8s.io
spec:
additionalPrinterColumns:
- JSONPath: .status.readyToUse
description: Indicates if a snapshot is ready to be used to restore a volume.
name: ReadyToUse
type: boolean
- JSONPath: .status.restoreSize
description: Represents the complete size of the snapshot in bytes
name: RestoreSize
type: integer
- JSONPath: .spec.deletionPolicy
description: Determines whether this VolumeSnapshotContent and its physical snapshot
on the underlying storage system should be deleted when its bound VolumeSnapshot
is deleted.
name: DeletionPolicy
type: string
- JSONPath: .spec.driver
description: Name of the CSI driver used to create the physical snapshot on the
underlying storage system.
name: Driver
type: string
- JSONPath: .spec.volumeSnapshotClassName
description: Name of the VolumeSnapshotClass to which this snapshot belongs.
name: VolumeSnapshotClass
type: string
- JSONPath: .spec.volumeSnapshotRef.name
description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent
object is bound.
name: VolumeSnapshot
type: string
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: snapshot.storage.k8s.io
names:
kind: VolumeSnapshotContent
listKind: VolumeSnapshotContentList
plural: volumesnapshotcontents
singular: volumesnapshotcontent
preserveUnknownFields: false
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: VolumeSnapshotContent represents the actual "on-disk" snapshot
object in the underlying storage system
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
spec:
description: spec defines properties of a VolumeSnapshotContent created
by the underlying storage system. Required.
properties:
deletionPolicy:
description: deletionPolicy determines whether this VolumeSnapshotContent
and its physical snapshot on the underlying storage system should
be deleted when its bound VolumeSnapshot is deleted. Supported values
are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent
and its physical snapshot on underlying storage system are kept. "Delete"
means that the VolumeSnapshotContent and its physical snapshot on
underlying storage system are deleted. In dynamic snapshot creation
case, this field will be filled in with the "DeletionPolicy" field
defined in the VolumeSnapshotClass the VolumeSnapshot refers to. For
pre-existing snapshots, users MUST specify this field when creating
the VolumeSnapshotContent object. Required.
enum:
- Delete
- Retain
type: string
driver:
description: driver is the name of the CSI driver used to create the
physical snapshot on the underlying storage system. This MUST be the
same as the name returned by the CSI GetPluginName() call for that
driver. Required.
type: string
source:
description: source specifies from where a snapshot will be created.
This field is immutable after creation. Required.
properties:
snapshotHandle:
description: snapshotHandle specifies the CSI "snapshot_id" of a
pre-existing snapshot on the underlying storage system. This field
is immutable.
type: string
volumeHandle:
description: volumeHandle specifies the CSI "volume_id" of the volume
from which a snapshot should be dynamically taken from. This field
is immutable.
type: string
type: object
volumeSnapshotClassName:
description: name of the VolumeSnapshotClass to which this snapshot
belongs.
type: string
volumeSnapshotRef:
description: volumeSnapshotRef specifies the VolumeSnapshot object to
which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName
field must reference to this VolumeSnapshotContent's name for the
bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent
object, name and namespace of the VolumeSnapshot object MUST be provided
for binding to happen. This field is immutable after creation. Required.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of an
entire object, this string should contain a valid JSON/Go field
access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen only
to have some well-defined way of referencing a part of an object.
TODO: this design is not final and this field is subject to change
in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference is
made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
required:
- deletionPolicy
- driver
- source
- volumeSnapshotRef
type: object
status:
description: status represents the current information of a snapshot.
properties:
creationTime:
description: creationTime is the timestamp when the point-in-time snapshot
is taken by the underlying storage system. In dynamic snapshot creation
case, this field will be filled in with the "creation_time" value
returned from CSI "CreateSnapshotRequest" gRPC call. For a pre-existing
snapshot, this field will be filled with the "creation_time" value
returned from the CSI "ListSnapshots" gRPC call if the driver supports
it. If not specified, it indicates the creation time is unknown. The
format of this field is a Unix nanoseconds time encoded as an int64.
On Unix, the command `date +%s%N` returns the current time in nanoseconds
since 1970-01-01 00:00:00 UTC.
format: int64
type: integer
error:
description: error is the latest observed error during snapshot creation,
if any.
properties:
message:
description: 'message is a string detailing the encountered error
during snapshot creation if specified. NOTE: message may be logged,
and it should not contain sensitive information.'
type: string
time:
description: time is the timestamp when the error was encountered.
format: date-time
type: string
type: object
readyToUse:
description: readyToUse indicates if a snapshot is ready to be used
to restore a volume. In dynamic snapshot creation case, this field
will be filled in with the "ready_to_use" value returned from CSI
"CreateSnapshotRequest" gRPC call. For a pre-existing snapshot, this
field will be filled with the "ready_to_use" value returned from the
CSI "ListSnapshots" gRPC call if the driver supports it, otherwise,
this field will be set to "True". If not specified, it means the readiness
of a snapshot is unknown.
type: boolean
restoreSize:
description: restoreSize represents the complete size of the snapshot
in bytes. In dynamic snapshot creation case, this field will be filled
in with the "size_bytes" value returned from CSI "CreateSnapshotRequest"
gRPC call. For a pre-existing snapshot, this field will be filled
with the "size_bytes" value returned from the CSI "ListSnapshots"
gRPC call if the driver supports it. When restoring a volume from
this snapshot, the size of the volume MUST NOT be smaller than the
restoreSize if it is specified, otherwise the restoration will fail.
If not specified, it indicates that the size is unknown.
format: int64
minimum: 0
type: integer
snapshotHandle:
description: snapshotHandle is the CSI "snapshot_id" of a snapshot on
the underlying storage system. If not specified, it indicates that
dynamic snapshot creation has either failed or it is still in progress.
type: string
type: object
required:
- spec
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.5
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260"
creationTimestamp: null
name: volumesnapshots.snapshot.storage.k8s.io
spec:
additionalPrinterColumns:
- JSONPath: .status.readyToUse
description: Indicates if a snapshot is ready to be used to restore a volume.
name: ReadyToUse
type: boolean
- JSONPath: .spec.source.persistentVolumeClaimName
description: Name of the source PVC from where a dynamically taken snapshot will
be created.
name: SourcePVC
type: string
- JSONPath: .spec.source.volumeSnapshotContentName
description: Name of the VolumeSnapshotContent which represents a pre-provisioned
snapshot.
name: SourceSnapshotContent
type: string
- JSONPath: .status.restoreSize
description: Represents the complete size of the snapshot.
name: RestoreSize
type: string
- JSONPath: .spec.volumeSnapshotClassName
description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot.
name: SnapshotClass
type: string
- JSONPath: .status.boundVolumeSnapshotContentName
description: The name of the VolumeSnapshotContent to which this VolumeSnapshot
is bound.
name: SnapshotContent
type: string
- JSONPath: .status.creationTime
description: Timestamp when the point-in-time snapshot is taken by the underlying
storage system.
name: CreationTime
type: date
- JSONPath: .metadata.creationTimestamp
name: Age
type: date
group: snapshot.storage.k8s.io
names:
kind: VolumeSnapshot
listKind: VolumeSnapshotList
plural: volumesnapshots
singular: volumesnapshot
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: VolumeSnapshot is a user's request for either creating a point-in-time
snapshot of a persistent volume, or binding to a pre-existing snapshot.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
spec:
description: 'spec defines the desired characteristics of a snapshot requested
by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
Required.'
properties:
source:
description: source specifies where a snapshot will be created from.
This field is immutable after creation. Required.
properties:
persistentVolumeClaimName:
description: persistentVolumeClaimName specifies the name of the
PersistentVolumeClaim object in the same namespace as the VolumeSnapshot
object where the snapshot should be dynamically taken from. This
field is immutable.
type: string
volumeSnapshotContentName:
description: volumeSnapshotContentName specifies the name of a pre-existing
VolumeSnapshotContent object. This field is immutable.
type: string
type: object
volumeSnapshotClassName:
description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass
requested by the VolumeSnapshot. If not specified, the default snapshot
class will be used if one exists. If not specified, and there is no
default snapshot class, dynamic snapshot creation will fail. Empty
string is not allowed for this field. TODO(xiangqian): a webhook validation
on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes'
type: string
required:
- source
type: object
status:
description: 'status represents the current information of a snapshot. NOTE:
status can be modified by sources other than system controllers, and must
not be depended upon for accuracy. Controllers should only use information
from the VolumeSnapshotContent object after verifying that the binding
is accurate and complete.'
properties:
boundVolumeSnapshotContentName:
description: 'boundVolumeSnapshotContentName represents the name of
the VolumeSnapshotContent object to which the VolumeSnapshot object
is bound. If not specified, it indicates that the VolumeSnapshot object
has not been successfully bound to a VolumeSnapshotContent object
yet. NOTE: Specified boundVolumeSnapshotContentName alone does not
mean binding is valid. Controllers MUST always verify bidirectional
binding between VolumeSnapshot and VolumeSnapshotContent to
avoid possible security issues.'
type: string
creationTime:
description: creationTime is the timestamp when the point-in-time snapshot
is taken by the underlying storage system. In dynamic snapshot creation
case, this field will be filled in with the "creation_time" value
returned from CSI "CreateSnapshotRequest" gRPC call. For a pre-existing
snapshot, this field will be filled with the "creation_time" value
returned from the CSI "ListSnapshots" gRPC call if the driver supports
it. If not specified, it indicates that the creation time of the snapshot
is unknown.
format: date-time
type: string
error:
description: error is the last observed error during snapshot creation,
if any. This field could be helpful to upper level controllers(i.e.,
application controller) to decide whether they should continue on
waiting for the snapshot to be created based on the type of error
reported.
properties:
message:
description: 'message is a string detailing the encountered error
during snapshot creation if specified. NOTE: message may be logged,
and it should not contain sensitive information.'
type: string
time:
description: time is the timestamp when the error was encountered.
format: date-time
type: string
type: object
readyToUse:
description: readyToUse indicates if a snapshot is ready to be used
to restore a volume. In dynamic snapshot creation case, this field
will be filled in with the "ready_to_use" value returned from CSI
"CreateSnapshotRequest" gRPC call. For a pre-existing snapshot, this
field will be filled with the "ready_to_use" value returned from the
CSI "ListSnapshots" gRPC call if the driver supports it, otherwise,
this field will be set to "True". If not specified, it means the readiness
of a snapshot is unknown.
type: boolean
restoreSize:
anyOf:
- type: integer
- type: string
description: restoreSize represents the complete size of the snapshot
in bytes. In dynamic snapshot creation case, this field will be filled
in with the "size_bytes" value returned from CSI "CreateSnapshotRequest"
gRPC call. For a pre-existing snapshot, this field will be filled
with the "size_bytes" value returned from the CSI "ListSnapshots"
gRPC call if the driver supports it. When restoring a volume from
this snapshot, the size of the volume MUST NOT be smaller than the
restoreSize if it is specified, otherwise the restoration will fail.
If not specified, it indicates that the size is unknown.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
required:
- spec
type: object
version: v1beta1
versions:
- name: v1beta1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,110 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: provisionercapabilities.storage.kubesphere.io
spec:
group: storage.kubesphere.io
names:
kind: ProvisionerCapability
listKind: ProvisionerCapabilityList
plural: provisionercapabilities
singular: provisionercapability
scope: Namespaced
validation:
openAPIV3Schema:
description: ProvisionerCapability is the schema for the provisionercapability
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ProvisionerCapabilitySpec defines the desired state of ProvisionerCapability
properties:
features:
description: CapabilityFeatures describe storage features
properties:
snapshot:
description: SnapshotFeature describe snapshot features
properties:
create:
type: boolean
list:
type: boolean
required:
- create
- list
type: object
topology:
type: boolean
volume:
description: VolumeFeature describe volume features
properties:
attach:
type: boolean
clone:
type: boolean
create:
type: boolean
expandMode:
type: string
list:
type: boolean
stats:
type: boolean
required:
- attach
- clone
- create
- expandMode
- list
- stats
type: object
required:
- snapshot
- topology
- volume
type: object
pluginInfo:
description: PluginInfo describes plugin info
properties:
name:
type: string
version:
type: string
required:
- name
- version
type: object
required:
- features
- pluginInfo
type: object
required:
- spec
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,101 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: storageclasscapabilities.storage.kubesphere.io
spec:
group: storage.kubesphere.io
names:
kind: StorageClassCapability
listKind: StorageClassCapabilityList
plural: storageclasscapabilities
singular: storageclasscapability
scope: Namespaced
validation:
openAPIV3Schema:
description: StorageClassCapability is the Schema for the storage class capability
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: StorageClassCapabilitySpec defines the desired state of StorageClassCapability
properties:
features:
description: CapabilityFeatures describe storage features
properties:
snapshot:
description: SnapshotFeature describe snapshot features
properties:
create:
type: boolean
list:
type: boolean
required:
- create
- list
type: object
topology:
type: boolean
volume:
description: VolumeFeature describe volume features
properties:
attach:
type: boolean
clone:
type: boolean
create:
type: boolean
expandMode:
type: string
list:
type: boolean
stats:
type: boolean
required:
- attach
- clone
- create
- expandMode
- list
- stats
type: object
required:
- snapshot
- topology
- volume
type: object
provisioner:
type: string
required:
- features
- provisioner
type: object
required:
- spec
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,58 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: workspaces.tenant.kubesphere.io
spec:
group: tenant.kubesphere.io
names:
categories:
- tenant
kind: Workspace
listKind: WorkspaceList
plural: workspaces
singular: workspace
scope: Cluster
validation:
openAPIV3Schema:
description: Workspace is the Schema for the workspaces API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: WorkspaceSpec defines the desired state of Workspace
properties:
manager:
type: string
networkIsolation:
type: boolean
type: object
status:
description: WorkspaceStatus defines the observed state of Workspace
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,111 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: workspacetemplates.tenant.kubesphere.io
spec:
group: tenant.kubesphere.io
names:
categories:
- tenant
kind: WorkspaceTemplate
listKind: WorkspaceTemplateList
plural: workspacetemplates
singular: workspacetemplate
scope: Cluster
validation:
openAPIV3Schema:
description: WorkspaceTemplate is the Schema for the workspacetemplates API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
overrides:
items:
properties:
clusterName:
type: string
clusterOverrides:
items:
properties:
op:
type: string
path:
type: string
value:
type: object
required:
- path
- value
type: object
type: array
required:
- clusterName
- clusterOverrides
type: object
type: array
placement:
properties:
clusterSelector:
properties:
matchLabels:
additionalProperties:
type: string
type: object
type: object
clusters:
items:
properties:
name:
type: string
required:
- name
type: object
type: array
type: object
template:
properties:
metadata:
type: object
spec:
description: WorkspaceSpec defines the desired state of Workspace
properties:
manager:
type: string
networkIsolation:
type: boolean
type: object
required:
- spec
type: object
required:
- placement
- template
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -0,0 +1,49 @@
# Add namespace to all resources.
namespace: t-system
# Value of this field is prepended to the
# names of all resources, e.g. a deployment named
# "wordpress" becomes "alices-wordpress".
# Note that it should also match with the prefix (text before '-') of the namespace
# field above.
namePrefix: t-
# Labels to add to all resources and selectors.
#commonLabels:
# someName: someValue
# Each entry in this list must resolve to an existing
# resource definition in YAML. These are the resource
# files that kustomize reads, modifies and emits as a
# YAML string, with resources separated by document
# markers ("---").
resources:
- ../rbac/rbac_role.yaml
- ../rbac/rbac_role_binding.yaml
- ../manager/manager.yaml
# Comment the following 3 lines if you want to disable
# the auth proxy (https://github.com/brancz/kube-rbac-proxy)
# which protects your /metrics endpoint.
#- ../rbac/auth_proxy_service.yaml
#- ../rbac/auth_proxy_role.yaml
#- ../rbac/auth_proxy_role_binding.yaml
patches:
- manager_image_patch.yaml
# Protect the /metrics endpoint by putting it behind auth.
# Only one of manager_auth_proxy_patch.yaml and
# manager_prometheus_metrics_patch.yaml should be enabled.
- manager_auth_proxy_patch.yaml
# If you want your controller-manager to expose the /metrics
# endpoint w/o any authn/z, uncomment the following line and
# comment manager_auth_proxy_patch.yaml.
# Only one of manager_auth_proxy_patch.yaml and
# manager_prometheus_metrics_patch.yaml should be enabled.
#- manager_prometheus_metrics_patch.yaml
vars:
- name: WEBHOOK_SECRET_NAME
objref:
kind: Secret
name: webhook-server-secret
apiVersion: v1

View File

@@ -0,0 +1,24 @@
# This patch injects a sidecar container which is an HTTP proxy for the controller manager.
# It performs RBAC authorization against the Kubernetes API using SubjectAccessReviews.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: controller-manager
namespace: system
spec:
template:
spec:
containers:
- name: kube-rbac-proxy
image: quay.io/coreos/kube-rbac-proxy:v0.4.0
args:
- "--secure-listen-address=0.0.0.0:8443"
- "--upstream=http://127.0.0.1:8080/"
- "--logtostderr=true"
- "--v=10"
ports:
- containerPort: 8443
name: https
- name: manager
args:
- "--metrics-addr=127.0.0.1:8080"

View File

@@ -0,0 +1,12 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: controller-manager
namespace: system
spec:
template:
spec:
containers:
# Change the value of image field below to your controller image URL
- image: kubespheredev/controller-manager:latest
name: manager

View File

@@ -0,0 +1,19 @@
# This patch enables Prometheus scraping for the manager pod.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: controller-manager
namespace: system
spec:
template:
metadata:
annotations:
prometheus.io/scrape: 'true'
spec:
containers:
# Expose the prometheus metrics on default port
- name: manager
ports:
- containerPort: 8080
name: metrics
protocol: TCP

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-aws-ebs
spec:
pluginInfo:
name: kubernetes.io/aws-ebs
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: ONLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-azure-disk
spec:
pluginInfo:
name: kubernetes.io/azure-disk
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: OFFLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-azure-file
spec:
pluginInfo:
name: kubernetes.io/azure-file
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: OFFLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-cinder
spec:
pluginInfo:
name: kubernetes.io/cinder
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: ONLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-gce-pd
spec:
pluginInfo:
name: kubernetes.io/gce-pd
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: ONLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-glusterfs
spec:
pluginInfo:
name: kubernetes.io/glusterfs
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: OFFLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-portworx-volume
spec:
pluginInfo:
name: kubernetes.io/portworx-volume
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: OFFLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,20 @@
apiVersion: storage.kubesphere.io/v1alpha1
kind: ProvisionerCapability
metadata:
name: kubernetes-io-rbd
spec:
pluginInfo:
name: kubernetes.io/rbd
version: ""
features:
topology: false
volume:
create: true
attach: true
clone: false
list: false
stats: false
expandMode: ONLINE
snapshot:
create: false
list: false

View File

@@ -0,0 +1,83 @@
apiVersion: v1
kind: Namespace
metadata:
labels:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
name: system
---
apiVersion: v1
kind: Service
metadata:
name: controller-manager-service
namespace: system
labels:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
spec:
selector:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
ports:
- port: 443
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: controller-manager
namespace: system
labels:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
spec:
selector:
matchLabels:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
serviceName: controller-manager-service
template:
metadata:
labels:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
spec:
containers:
- command:
- ./controller-manager
image: kubespheredev/controller-manager:latest
imagePullPolicy: Always
name: manager
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: SECRET_NAME
value: $(WEBHOOK_SECRET_NAME)
resources:
limits:
cpu: 100m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
ports:
- containerPort: 9876
name: webhook-server
protocol: TCP
volumeMounts:
- mountPath: /tmp/cert
name: cert
readOnly: true
terminationGracePeriodSeconds: 10
volumes:
- name: cert
secret:
defaultMode: 420
secretName: webhook-server-secret
---
apiVersion: v1
kind: Secret
metadata:
name: webhook-server-secret
namespace: system

13
config/rbac/auth_proxy_role.yaml generated Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: proxy-role
rules:
- apiGroups: ["authentication.k8s.io"]
resources:
- tokenreviews
verbs: ["create"]
- apiGroups: ["authorization.k8s.io"]
resources:
- subjectaccessreviews
verbs: ["create"]

12
config/rbac/auth_proxy_role_binding.yaml generated Normal file
View File

@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: proxy-role
subjects:
- kind: ServiceAccount
name: default
namespace: system

20
config/rbac/auth_proxy_service.yaml generated Normal file
View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/port: "8443"
prometheus.io/scheme: https
prometheus.io/scrape: "true"
labels:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"
name: controller-manager-metrics-service
namespace: system
spec:
ports:
- name: https
port: 8443
targetPort: https
selector:
control-plane: controller-manager
controller-tools.k8s.io: "1.0"

171
config/rbac/rbac_role.yaml generated Normal file
View File

@@ -0,0 +1,171 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: manager-role
rules:
- apiGroups:
- core.kubesphere.io
resources:
- namespaces
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- core.kubesphere.io
resources:
- namespaces/status
verbs:
- get
- update
- patch
- apiGroups:
- core.kubesphere.io
resources:
- namespaces
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- core.kubesphere.io
resources:
- namespaces/status
verbs:
- get
- update
- patch
- apiGroups:
- apps
resources:
- deployments
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- apps
resources:
- deployments/status
verbs:
- get
- update
- patch
- apiGroups:
- devops.kubesphere.io
resources:
- s2ibinaries
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- devops.kubesphere.io
resources:
- s2ibinaries/status
verbs:
- get
- update
- patch
- apiGroups:
- tenant.kubesphere.io
resources:
- workspaces
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- tenant.kubesphere.io
resources:
- workspaces/status
verbs:
- get
- update
- patch
- apiGroups:
- admissionregistration.k8s.io
resources:
- mutatingwebhookconfigurations
- validatingwebhookconfigurations
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- "storage.k8s.io"
resources:
- storageclasses
verbs:
- get
- list
- watch
- apiGroups:
- "snapshot.storage.k8s.io"
resources:
- volumesnapshotclasses
verbs:
- get
- list
- watch
- apiGroups:
- "storage.kubesphere.io"
resources:
- storageclasscapabilities
verbs:
- create
- get
- list
- watch
- update
- patch
- delete

13
config/rbac/rbac_role_binding.yaml generated Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
creationTimestamp: null
name: manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: manager-role
subjects:
- kind: ServiceAccount
name: default
namespace: system

54
config/rbac/role.yaml generated Normal file
View File

@@ -0,0 +1,54 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: manager-role
rules:
- apiGroups:
- crd.projectcalico.org
resources:
- clusterinformations
- felixconfigurations
- globalfelixconfigs
- globalnetworkpolicies
- globalnetworksets
- hostendpoints
- ipamblocks
- ippools
- networkpolicies
- networksets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- network.kubesphere.io
resources:
- namespacenetworkpolicies
- workspacenetworkpolicies
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- tenant.kubesphere.io
resources:
- workspaces
verbs:
- create
- delete
- get
- list
- patch
- update
- watch

View File

@@ -0,0 +1,6 @@
apiVersion: devops.kubesphere.io/v1alpha1
kind: S2iBinary
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: s2ibinary-sample

Some files were not shown because too many files have changed in this diff Show More