first version of the roadmap
parent
65ece3bc1d
commit
5fdea4b947
|
@ -0,0 +1,86 @@
|
||||||
|
![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png)
|
||||||
|
|
||||||
|
##Deploy a production ready kubernetes cluster
|
||||||
|
|
||||||
|
If you have questions, you can [invite yourself](https://slack.kubespray.io/) to **chat** with us on Slack! [![SlackStatus](https://slack.kubespray.io/badge.svg)](https://kubespray.slack.com)
|
||||||
|
|
||||||
|
- Can be deployed on **AWS, GCE, OpenStack or Baremetal**
|
||||||
|
- **High available** cluster
|
||||||
|
- **Composable** (Choice of the network plugin for instance)
|
||||||
|
- Support most popular **Linux distributions**
|
||||||
|
- **Continuous integration tests**
|
||||||
|
|
||||||
|
|
||||||
|
To deploy the cluster you can use :
|
||||||
|
|
||||||
|
[**kargo-cli**](https://github.com/kubespray/kargo-cli) <br>
|
||||||
|
**Ansible** usual commands <br>
|
||||||
|
**vagrant** by simply running `vagrant up` (for tests purposes) <br>
|
||||||
|
|
||||||
|
|
||||||
|
* [Requirements](#requirements)
|
||||||
|
* [Getting started](docs/getting-started.md)
|
||||||
|
* [Vagrant install](docs/vagrant.md)
|
||||||
|
* [CoreOS bootstrap](docs/coreos.md)
|
||||||
|
* [Ansible variables](docs/ansible.md)
|
||||||
|
* [Cloud providers](docs/cloud.md)
|
||||||
|
* [Openstack](docs/openstack.md)
|
||||||
|
* [Network plugins](#network-plugins)
|
||||||
|
* [Roadmap](docs/roadmap.md)
|
||||||
|
|
||||||
|
Supported Linux distributions
|
||||||
|
===============
|
||||||
|
|
||||||
|
* **CoreOS**
|
||||||
|
* **Debian** Wheezy, Jessie
|
||||||
|
* **Ubuntu** 14.10, 15.04, 15.10, 16.04
|
||||||
|
* **Fedora** 23
|
||||||
|
* **CentOS/RHEL** 7
|
||||||
|
|
||||||
|
Versions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.3.0 <br>
|
||||||
|
[etcd](https://github.com/coreos/etcd/releases) v3.0.1 <br>
|
||||||
|
[calicoctl](https://github.com/projectcalico/calico-docker/releases) v0.20.0 <br>
|
||||||
|
[flanneld](https://github.com/coreos/flannel/releases) v0.5.5 <br>
|
||||||
|
[weave](http://weave.works/) v1.5.0 <br>
|
||||||
|
[docker](https://www.docker.com/) v1.10.3 <br>
|
||||||
|
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* The target servers must have **access to the Internet** in order to pull docker images.
|
||||||
|
* The **firewalls are not managed**, you'll need to implement your own rules the way you used to.
|
||||||
|
in order to avoid any issue during deployment you should disable your firewall
|
||||||
|
* **Copy your ssh keys** to all the servers part of your inventory.
|
||||||
|
* **Ansible v2.x and python-netaddr**
|
||||||
|
|
||||||
|
|
||||||
|
## Network plugins
|
||||||
|
You can choose between 3 network plugins. (default: `flannel` with vxlan backend)
|
||||||
|
|
||||||
|
* [**flannel**](docs/flannel.md): gre/vxlan (layer 2) networking.
|
||||||
|
|
||||||
|
* [**calico**](docs/calico.md): bgp (layer 3) networking.
|
||||||
|
|
||||||
|
* **weave**: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster. <br>
|
||||||
|
(Please refer to `weave` [troubleshooting documentation](http://docs.weave.works/weave/latest_release/troubleshooting.html))
|
||||||
|
|
||||||
|
The choice is defined with the variable `kube_network_plugin`
|
||||||
|
|
||||||
|
|
||||||
|
## CI Tests
|
||||||
|
|
||||||
|
[![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo) </br>
|
||||||
|
|
||||||
|
### Google Compute Engine
|
||||||
|
|
||||||
|
| Calico | Flannel | Weave |
|
||||||
|
------------- | ------------- | ------------- | ------------- |
|
||||||
|
Ubuntu Xenial |[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-weave)|
|
||||||
|
CentOS 7 |[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-weave/)|
|
||||||
|
CoreOS (stable) |[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-weave/)|
|
||||||
|
|
||||||
|
CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack.
|
|
@ -1,84 +0,0 @@
|
||||||
![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png)
|
|
||||||
|
|
||||||
##Deploy a production ready kubernetes cluster
|
|
||||||
|
|
||||||
If you have questions, you can [invite yourself](https://slack.kubespray.io/) to **chat** with us on Slack! [![SlackStatus](https://slack.kubespray.io/badge.svg)](https://kubespray.slack.com)
|
|
||||||
|
|
||||||
- Can be deployed on **AWS, GCE, OpenStack or Baremetal**
|
|
||||||
- **High available** cluster
|
|
||||||
- **Composable** (Choice of the network plugin for instance)
|
|
||||||
- Support most popular **Linux distributions**
|
|
||||||
- **Continuous integration tests**
|
|
||||||
|
|
||||||
|
|
||||||
To deploy the cluster you can use :
|
|
||||||
|
|
||||||
[**kargo-cli**](https://github.com/kubespray/kargo-cli) <br>
|
|
||||||
**Ansible** usual commands <br>
|
|
||||||
**vagrant** by simply running `vagrant up` (for tests purposes) <br>
|
|
||||||
|
|
||||||
|
|
||||||
* [Requirements](#requirements)
|
|
||||||
* [Getting started](docs/getting-started.md)
|
|
||||||
* [Vagrant install](docs/vagrant.md)
|
|
||||||
* [CoreOS bootstrap](docs/coreos.md)
|
|
||||||
* [Ansible variables](docs/ansible.md)
|
|
||||||
* [Cloud providers](docs/cloud.md)
|
|
||||||
* [Openstack](docs/openstack.md)
|
|
||||||
* [Network plugins](#network-plugins)
|
|
||||||
|
|
||||||
Supported Linux distributions
|
|
||||||
===============
|
|
||||||
|
|
||||||
* **CoreOS**
|
|
||||||
* **Debian** Wheezy, Jessie
|
|
||||||
* **Ubuntu** 14.10, 15.04, 15.10, 16.04
|
|
||||||
* **Fedora** 23
|
|
||||||
* **CentOS/RHEL** 7
|
|
||||||
|
|
||||||
Versions
|
|
||||||
--------------
|
|
||||||
|
|
||||||
[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.3.0 <br>
|
|
||||||
[etcd](https://github.com/coreos/etcd/releases) v3.0.1 <br>
|
|
||||||
[calicoctl](https://github.com/projectcalico/calico-docker/releases) v0.20.0 <br>
|
|
||||||
[flanneld](https://github.com/coreos/flannel/releases) v0.5.5 <br>
|
|
||||||
[weave](http://weave.works/) v1.5.0 <br>
|
|
||||||
[docker](https://www.docker.com/) v1.10.3 <br>
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
--------------
|
|
||||||
|
|
||||||
* The target servers must have **access to the Internet** in order to pull docker images.
|
|
||||||
* The **firewalls are not managed**, you'll need to implement your own rules the way you used to.
|
|
||||||
in order to avoid any issue during deployment you should disable your firewall
|
|
||||||
* **Copy your ssh keys** to all the servers part of your inventory.
|
|
||||||
* **Ansible v2.x and python-netaddr**
|
|
||||||
|
|
||||||
|
|
||||||
## Network plugins
|
|
||||||
You can choose between 3 network plugins. (default: `flannel` with vxlan backend)
|
|
||||||
|
|
||||||
* [**flannel**](docs/flannel.md): gre/vxlan (layer 2) networking.
|
|
||||||
|
|
||||||
* [**calico**](docs/calico.md): bgp (layer 3) networking.
|
|
||||||
|
|
||||||
* **weave**: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster. <br>
|
|
||||||
(Please refer to `weave` [troubleshooting documentation](http://docs.weave.works/weave/latest_release/troubleshooting.html))
|
|
||||||
|
|
||||||
The choice is defined with the variable `kube_network_plugin`
|
|
||||||
|
|
||||||
## CI Tests
|
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/kubespray/kargo.svg)](https://travis-ci.org/kubespray/kargo) </br>
|
|
||||||
|
|
||||||
### Google Compute Engine
|
|
||||||
|
|
||||||
| Calico | Flannel | Weave |
|
|
||||||
------------- | ------------- | ------------- | ------------- |
|
|
||||||
Ubuntu Xenial |[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-xenial-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-xenial-weave)|
|
|
||||||
CentOS 7 |[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-centos7-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-centos7-weave/)|
|
|
||||||
CoreOS (stable) |[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-calico/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-calico/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-flannel/)|[![Build Status](https://ci.kubespray.io/job/kargo-gce-coreos-weave/badge/icon)](https://ci.kubespray.io/job/kargo-gce-coreos-weave/)|
|
|
||||||
|
|
||||||
CI tests sponsored by Google (GCE), and [teuto.net](https://teuto.net/) for OpenStack.
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
Kargo's roadmap
|
||||||
|
=================
|
||||||
|
|
||||||
|
### Self deployment (pull-mode) [#320](https://github.com/kubespray/kargo/issues/320)
|
||||||
|
- the playbook would install and configure docker and the etcd cluster [#321](https://github.com/kubespray/kargo/issues/321)
|
||||||
|
- the following data would be inserted into etcd: certs,tokens,users,inventory,group_vars.
|
||||||
|
- a "kubespray" container would be deployed (kargo-cli, ansible-playbook, kpm)
|
||||||
|
- to be discussed, a way to provide the inventory
|
||||||
|
- **self deployment** of the node
|
||||||
|
|
||||||
|
### Provisionning and cloud providers
|
||||||
|
- Terraform to provision instances on **GCE, AWS, Openstack, Digital Ocean, Azure**
|
||||||
|
- On AWS autoscaling, multi AZ
|
||||||
|
- On Azure autoscaling, create loadbalancer [#297](https://github.com/kubespray/kargo/issues/297)
|
||||||
|
- On GCE be able to create a loadbalancer automatically (IAM ?) [#280](https://github.com/kubespray/kargo/issues/280)
|
||||||
|
- **TLS boostrap** support for kubelet [#234](https://github.com/kubespray/kargo/issues/234)
|
||||||
|
(related issues: https://github.com/kubernetes/kubernetes/pull/20439 <br>
|
||||||
|
https://github.com/kubernetes/kubernetes/issues/18112)
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
- Run kubernetes e2e tests
|
||||||
|
- migrate to jenkins
|
||||||
|
(a test is currently a deployment on a 3 node cluste, testing k8s api, ping between 2 pods)
|
||||||
|
- Full tests on GCE per day (All OS's, all network plugins)
|
||||||
|
- trigger a single test per pull request
|
||||||
|
- single test with the Ansible version n-1 per day
|
||||||
|
- Test idempotency on on single OS but for all network plugins/container engines
|
||||||
|
- single test on AWS per day
|
||||||
|
- test different achitectures :
|
||||||
|
- 3 instances, 3 are members of the etcd cluster, 2 of them acting as master and node, 1 as node
|
||||||
|
- 5 instances, 3 are etcd and nodes, 2 are masters only
|
||||||
|
- 7 instances, 3 etcd only, 2 masters, 2 nodes
|
||||||
|
- test scale up cluster: +1 etcd, +1 master, +1 node
|
||||||
|
|
||||||
|
### Lifecycle
|
||||||
|
- Drain worker node when upgrading k8s components in a worker node. [#154](https://github.com/kubespray/kargo/issues/154)
|
||||||
|
- Drain worker node when shutting down/deleting an instance
|
||||||
|
|
||||||
|
### Networking
|
||||||
|
- romana.io support [#160](https://github.com/kubespray/kargo/issues/160)
|
||||||
|
- Configure network policy for Calico. [#159](https://github.com/kubespray/kargo/issues/159)
|
||||||
|
- Opencontrail
|
||||||
|
- Canal
|
||||||
|
|
||||||
|
### High availability
|
||||||
|
- (to be discussed) option to set a loadbalancer for the apiservers like ucarp/packemaker/keepalived
|
||||||
|
While waiting for the issue [kubernetes/kubernetes#18174](https://github.com/kubernetes/kubernetes/issues/18174) to be fixed.
|
||||||
|
|
||||||
|
### Kargo-cli
|
||||||
|
- Delete instances
|
||||||
|
- `kargo vagrant` to setup a test cluster locally
|
||||||
|
- switch to Terraform instead of Ansible for provisionning
|
||||||
|
|
||||||
|
### Kargo API
|
||||||
|
- Perform all actions through an **API**
|
||||||
|
- Store inventories / configurations of mulltiple clusters
|
||||||
|
- make sure that state of cluster is completely saved in no more than one config file beyond hosts inventory
|
||||||
|
|
||||||
|
### Addons (with kpm)
|
||||||
|
Include optionals deployments to init the cluster:
|
||||||
|
##### Monitoring
|
||||||
|
- Heapster / Grafana ....
|
||||||
|
- **Prometheus**
|
||||||
|
|
||||||
|
##### Others
|
||||||
|
|
||||||
|
##### Dashboards:
|
||||||
|
- kubernetes-dashboard
|
||||||
|
- Fabric8
|
||||||
|
- Tectonic
|
||||||
|
- Cockpit
|
||||||
|
|
||||||
|
##### Paas like
|
||||||
|
- Openshift Origin
|
||||||
|
- Openstack
|
||||||
|
- Deis Workflow
|
||||||
|
|
||||||
|
### Others
|
||||||
|
- remove nodes (adding is already supported)
|
||||||
|
- being able to choose any k8s version (almost done)
|
||||||
|
- **rkt** support [#59](https://github.com/kubespray/kargo/issues/59)
|
||||||
|
- Review documentation (split in categories)
|
||||||
|
- **consul** -> if officialy supported by k8s
|
||||||
|
- flex volumes options (e.g. **torrus** support) [#312](https://github.com/kubespray/kargo/issues/312)
|
||||||
|
- Clusters federation option (aka **ubernetes**) [#329](https://github.com/kubespray/kargo/issues/329)
|
Loading…
Reference in New Issue