diff --git a/docs/img/img-20210607001.png b/docs/img/img-20210607001.png new file mode 100644 index 00000000000..4da3915972b Binary files /dev/null and b/docs/img/img-20210607001.png differ diff --git a/docs/img/img-20210607002.png b/docs/img/img-20210607002.png new file mode 100644 index 00000000000..4cfd57e0452 Binary files /dev/null and b/docs/img/img-20210607002.png differ diff --git a/docs/proposals/20210607-adding-subcommands-server-join-reset-for-yurtctl.md b/docs/proposals/20210607-adding-subcommands-server-join-reset-for-yurtctl.md new file mode 100644 index 00000000000..a4fa8a19c75 --- /dev/null +++ b/docs/proposals/20210607-adding-subcommands-server-join-reset-for-yurtctl.md @@ -0,0 +1,133 @@ +--- +title: Adding subcommands init, join and reset for yurtctl +authors: + - '@zyjhtangtang' +reviewers: + - '@Fei-Guo' + - '@rambohe-ch' + - '@huangyuqi' +creation-date: 2021-06-07T00:00:00.000Z +last-updated: 2021-06-07T00:00:00.000Z +status: provisional +--- + +# Adding subcommands `init` `join` and `reset` for yurtctl + +## Table of Contents + +- [Adding subcommands init, join and reset subcommands for yurtctl](#Adding-subcommands-init-join-and-reset-for-yurtctl) + - [Table of Contents](#table-of-contents) + - [Glossary](#glossary) + - [Summary](#summary) + - [Motivation](#motivation) + - [Goals](#goals) + - [Proposal](#proposal) + - [User Stories](#user-stories) + - [Creating OpenYurt cluster with yurtctl](#creating-OpenYurt-cluster-with-yurtctl) + - [Parameters for yurtctl init](#parameters-for-yurtctl-init) + - [Joining node to OpenYurt cluster](#joining-node-to-OpenYurt-cluster) + - [Parameters for yurtctl join](#parameters-for-yurtctl-join) + - [Resetting node](#resetting-node) + - [Implementation History](#implementation-history) + +## Glossary + +Refer to the [OpenYurt Glossary](https://github.com/openyurtio/openyurt/blob/master/docs/proposals/00_openyurt-glossary.md). + +## Summary +This proposal add three subcommands `init`, `join` and `reset` for yurtctl. The subcommand `init` can create an all-in-one kubernetes cluster, simultaneously convert the kuberntes cluster to an OpenYurt cluster. The subcommand `join` is used to add a new node to an OpenYurt cluster, including cloud nodes and edge nodes. The subcommand `reset` can restore the node to the state before joining OpenYurt cluster. + +## Motivation + +OpenYurt as a cloud-native edge computing project,a large number of users from the edge computing field are not familiar with cloud native knowledge. In order to enable users to use OpenYurt clusters quickly and reduce the cost of users learning OpenYurt, yurtctl has provided the subcommands `convert` and `revert`, to realize the conversion between OpenYurt cluster and Kubernetes cluster. However, It still has some shortcomings: (1) No support for new nodes to join the cluster directly; (2) Users are required to pre-built a kubernetes cluster, and then do conversion, which has a relatively high learning cost for beginners. So, we need to add subcommands `init`, `join`, `reset` for yurtctl. + +### Goals + +- To create an OpenYurt cluster quickly to meet users development and testing needs +- To support new nodes to join an OpenYurt cluster + +## Proposal + +### User Stories + +1. As a devdeloper in the field of edge computing, I would like to create an OpenYurt cluster for development and testing quickly. +2. As an end-user, I would like to try OpenYurt features. +3. As an end-user, I would like to join new nodes to OpenYurt cluster directly. + +### Creating OpenYurt cluster with yurtctl +In yurtctl, we provide the subcommand `init` to create an OpenYurt cluster. This command first creates an all-in-one kubernetes cluster, then convert the cluster to OpenYurt cluster. On the one hand, it reduces the complexity of cluster creation; On the other hand, it helps users understand the relationship between native Kubernertes and OpenYurt. In addition, the all-in-one kubernetes cluster can be replaced by kubernetes hosting services provided by cloud vendors, such as [ACK](https://www.alibabacloud.com/product/kubernetes). + +