diff --git a/README.md b/README.md index bd6944773..57f93f384 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [![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) +![logo](docs/images/kubesphere-logo.png) + ---- ## What is KubeSphere @@ -12,7 +14,7 @@ ## Features -KubeSphere Advanced Edition 2.0.0 provides an easy-to-use console with the awesome user experience that allows you to quickly get started with a container management platform. KubeSphere provides and supports following core features: +KubeSphere Advanced Edition 2.0.1 provides an easy-to-use console with the awesome user experience that allows you to quickly get started with a container management platform. KubeSphere provides and supports following core features: - Workload management @@ -37,28 +39,10 @@ It also supports multiple open source storage and high-performance cloud storage ## Latest Release -KubeSphere Advanced Edition 2.0.0 was released on **May 18th, 2019**. See the [Release Notes For 2.0.0](https://docs.kubesphere.io/advanced-v2.0/release/release-v200/) to preview the updates. +KubeSphere Advanced Edition 2.0.1 was released on **May 18th, 2019**. See the [Release Notes For 2.0.1](https://docs.kubesphere.io/advanced-v2.0/release/release-v201/) to preview the updates. ## Installation -KubeSphere installation supports following 2 kinds of installation, please reference the following guides on how to get KubeSphere up and running. - -### All-in-One - -[All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/): For those who are new to KubeSphere and looking for the fastest way to install and experience the dashboard. - -Just download the installer and execute the `install.sh` under `/scripts` folder, choose `"1) All-in-one"` to trigger the installation. Generally, you can install it directly without any modification, for details please reference [All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/). - -```bash -$ curl -L https://kubesphere.io/download/stable/advanced-2.0.0 > advanced-2.0.0.tar.gz -$ tar -zxf advanced-2.0.0.tar.gz -``` - -### Multi-Node - -[Multi-Node](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/) is used for installing KubeSphere on multiple instances, supports for installing a highly available cluster which is able to use in a formal environment. - - ### Minimum Requirements - Operating Systems @@ -69,27 +53,56 @@ $ tar -zxf advanced-2.0.0.tar.gz - Hardware - CPU:8 Core, Memory:16 G, Disk Space:100 G -## Quick Start +### All-in-One -The [Quick Start Guide](https://docs.kubesphere.io/advanced-v2.0/quick-start/admin-quick-start/) provides 12 quick-start examples to walk you through the process and common manipulation in KubeSphere, with a quick overview of the core features of KubeSphere that helps you to get familiar with it. +[All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/): For those who are new to KubeSphere and looking for the fastest way to install and experience the dashboard. Execute following commands to download and install KubeSphere in a single node. +```bash +$ curl -L https://kubesphere.io/download/stable/advanced-2.0.1 > advanced-2.0.1.tar.gz && tar -zxf advanced-2.0.1.tar.gz +$ cd kubesphere-all-advanced-2.0.1/scripts +$ ./install.sh +``` + +![demo](https://pek3b.qingstor.com/kubesphere-docs/png/kubesphere-intall.gif) + +Choose `"1) All-in-one"` to trigger the installation. Generally, you can install it directly without any configuration. For details please reference [All-in-One](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/all-in-one/). + +### Multi-Node + +[Multi-Node](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/) is used for installing KubeSphere on multiple instances, supports for installing a highly available cluster in a formal environment. Multi-node installation requires pre-configuration steps, see [Multi-Node Guide](https://docs.kubesphere.io/advanced-v2.0/zh-CN/installation/multi-node/). + + +## To start using KubeSphere + +### Quick Start + +The [Quick Start Guide](https://docs.kubesphere.io/advanced-v2.0/quick-start/admin-quick-start/) provides 12 quick-start tutorials to walk you through the process and common manipulation in KubeSphere, with a quick overview of the core features of KubeSphere that helps you to get familiar with it. + + +![Dashboard](docs/images/dashboard.png) + +### Documentation + +- [KubeSphere Documentation (En/中) ](https://docs.kubesphere.io/) +- [KubeSphere Documentation (PDF)](https://docs.kubesphere.io/KubeSphere-advanced-v2.0.pdf) + + +## To start developing KubeSphere + +The [development guide](docs/development-guide.md) hosts all information about building KubeSphere from source, git workflow, how to contribute code and how to test. ## RoadMap -Currently, KubeSphere has released the following 4 major editions. Advanced Edition 2.0.0 was released on May 18, 2019. The future releases will include Big data, AI, Multicluster, QingCloud SDN, etc. +Currently, KubeSphere has released the following 4 major editions. The future releases will include Big data, AI, Multicluster, QingCloud SDN, etc. -**Community Edition** => **Express Edition** => **Advanced Edition 1.0.0** => **Advanced Edition 2.0.0** +**Community Edition** => **Express Edition** => **Advanced Edition 1.0.0** => **Advanced Edition 2.0.x** ![Roadmap](docs/images/roadmap-en.png) -## Documentation - -- [KubeSphere Documentation (En/中) ](https://docs.kubesphere.io/) -- [KubeSphere Docementation (PDF)](https://docs.kubesphere.io/KubeSphere-advanced-v2.0.pdf) ## Support, Discussion, and Community -If you need any help with KubeSphere, please join us at [Slack channel](http://kubesphere.slack.com/) where most of our team hangs out at. +If you need any help with KubeSphere, please join us at [Slack channel](http://kubesphere.slack.com/). Please submit any KubeSphere bugs, issues, and feature requests to [KubeSphere GitHub Issue](https://github.com/kubesphere/kubesphere/issues). @@ -99,6 +112,5 @@ All members of the KubeSphere community must abide by [Code of Conduct](docs/cod How to submit a pull request to KubeSphere? See [Pull Request Instruction](docs/pull-requests.md). -You can then find out more detail [here](docs/welcome-to-KubeSphere-new-developer-guide.md). diff --git a/docs/development-guide.md b/docs/development-guide.md new file mode 100644 index 000000000..96e8868d0 --- /dev/null +++ b/docs/development-guide.md @@ -0,0 +1,130 @@ +# Development Guide + +This document walks you through how to get started developing KubeSphere and development workflow. + +## Preparing the environment + +### Go + +KubeSphere development is based on [Kubernetes](https://github.com/kubernetes/kubernetes), both of them are written in [Go](http://golang.org/). If you don't have a Go development environment, please [set one up](http://golang.org/doc/code.html). + +| Kubernetes | requires Go | +|----------------|-------------| +| 1.13+ | >= 1.12 | + +> Tips: +> - Ensure your GOPATH and PATH have been configured in accordance with the Go +environment instructions. +> - It's recommended to install [macOS GNU tools](https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x) for Mac OS. + + +### Dependency management + +KubeSphere uses `dep` to manage dependencies in the `vendor/` tree, execute following command to install [dep](https://github.com/golang/dep). + +```go +go get -u github.com/golang/dep/cmd/dep +``` + +### Test + +In the development process, it is recommended to use local Kubernetes clusters, such as [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/), or to install an single-node [all-in-one](https://github.com/kubesphere/kubesphere#all-in-one) environment (Kubernetes-based) for quick testing. + +> Tip: It also supports to use Docker for Desktop ships with Kubernetes as the test environment. + +## Development Workflow + +![ks-workflow](images/ks-workflow.png) + +### 1 Fork in the cloud + +1. Visit https://github.com/kubesphere/kubesphere +2. Click `Fork` button to establish a cloud-based fork. + +### 2 Clone fork to local storage + +Per Go's [workspace instructions][https://golang.org/doc/code.html#Workspaces], place KubeSphere' code on your `GOPATH` using the following cloning procedure. + +1. Define a local working directory: + +```bash +$ export working_dir=$GOPATH/src/kubesphere.io +$ export user={your github profile name} +``` + +2. Create your clone locally: + +```bash +$ mkdir -p $working_dir +$ cd $working_dir +$ git clone https://github.com/$user/kubesphere.git +$ cd $working_dir/kubesphere +$ git remote add upstream https://github.com/kubesphere/kubesphere.git + +# Never push to upstream master +$ git remote set-url --push upstream no_push + +# Confirm that your remotes make sense: +$ git remote -v +``` + +### 3 Keep your branch in sync + +```bash +git fetch upstream +git checkout master +git rebase upstream/master +``` + +### 4 Add new features or fix issues + +Branch from it: + +```bash +$ git checkout -b myfeature +``` + +Then edit code on the myfeature branch. + +**Test and Build** + +Currently, make rules only contain simple checks such as vet, unit test, will add e2e tests soon. + +**Using KubeBuilder** + +- For Linux OS, you can download and execute this [KubeBuilder script](https://raw.githubusercontent.com/kubesphere/kubesphere/master/hack/install_kubebuilder.sh). + +- For MacOS, you can install KubeBuilder by following this [guide](https://book.kubebuilder.io/quick-start.html). + +**Run and Test** + +```bash +$ make all +# Run every unit test +$ make test +``` + +Run `make help` for additional information on these make targets. + +### 5 Development in new branch + +```bash +$ git add +$ git commit -s -m "add your description" +``` + +### 6 Push to your folk + +When ready to review (or just to establish an offsite backup or your work), push your branch to your fork on github.com: + +``` +$ git push -f ${your_remote_name} myfeature +``` + +### 7 Create a PR + +- Visit your fork at https://github.com/$user/kubesphere +- Click the` Compare & Pull Request` button next to your myfeature branch. +- Check out the [pull request process](pull-request.md) for more details and advice. + + diff --git a/docs/images/dashboard.png b/docs/images/dashboard.png new file mode 100644 index 000000000..51c6bc7fb Binary files /dev/null and b/docs/images/dashboard.png differ diff --git a/docs/images/ks-workflow.png b/docs/images/ks-workflow.png new file mode 100644 index 000000000..53017bfe6 Binary files /dev/null and b/docs/images/ks-workflow.png differ diff --git a/docs/images/kubesphere-logo.png b/docs/images/kubesphere-logo.png new file mode 100644 index 000000000..d33d0156c Binary files /dev/null and b/docs/images/kubesphere-logo.png differ