590 Commits

Author SHA1 Message Date
Mohammed Naser
d16479709a functional: bump atomic version to latest
This patch brings the Fedora Atomic version used in gating to
the latest one which includes some improvements alongside a newer
version of Docker (which seems to run things better overall).

Change-Id: Iad0a1f57b29aec9a0cdb2a104fdaa5970133cfb4
2018-12-08 22:16:42 -05:00
Spyros Trigazis
c98e9525c7 Add heat_container_agent_tag label
Add heat_container_agent_tag label to allow users select the
heat-agent tag. Stein default: stein-dev

story: 2003992
task: 26936

Change-Id: I6a8d8dbb2ec7bd4b7d01fa7cd790a8966ea88f73
Signed-off-by: Spyros Trigazis <spyridon.trigazis@cern.ch>
2018-10-24 10:40:55 +02:00
Zuul
813d149ebd Merge "Docs: Replace non-existing command" 2018-09-10 08:42:01 +00:00
Sergey Filatov
0cf61dfb74 Add prometheus & grafana container image tags
To upgrade cluster we need to be able to set image tags
so this change adds to labels for corresponding containers

Task: 23314
Story: 2003171

Change-Id: I4cd0270a69fb889c59bdb28966821adb11fd0292
2018-08-31 18:20:26 +03:00
Zuul
7b6415a5bc Merge "[k8s] Add new label service_cluster_ip_range" 2018-08-29 07:57:50 +00:00
zhang.lei
7d4d22b901 Remove -u root as mysql is executed with root user
As openstack installation guides suggest to run mysql with root shell
user, mysql will not ask for password, so the "-u root -p" is useless.

Change-Id: I5ffa77971ecbcc9210b185a39842140b3acd8147
Related-Bug: #1785025
2018-08-19 14:34:53 +00:00
Zuul
8a229ffc72 Merge "Fix doc format" 2018-08-16 12:37:33 +00:00
Feilong Wang
80fcf76d27 [k8s] Add new label service_cluster_ip_range
A new label `service_cluster_ip_range` is added for k8s so that
user can set the service portal ip range to avoid conflicts with
pod ip range.

Task: 22568
Story: 2002725

Change-Id: Ie6e95a953059cc4bd5cf15a44f8666b714defb13
2018-08-14 11:20:10 +12:00
David Rabel
a400ea7980 Fix doc format
Blank line broke formatting in doc/source/user/index.rst. I therefore
deleted it.

Use code blocks instead of indentation in admin/magnum-proxy.rst
Old indentation was wrongly formated as quotation.

contributor/api-microversion.rst : Note was wrongly indented and
therefore interpreted as a quotation.

Change-Id: I47797a05be22a3b38f7994432ed75b67b6a4962a
2018-08-13 13:43:28 +02:00
Feilong Wang
feed29d7ed Using cgroupfs as default cgroup-driver
This is a part of fixes for k8s v1.11.1 recently we're doing. When
testing the k8s v1.11.1, we just found some small but annoying issues:

1. cgroup-driver with systemd not working well with Fedora Atomic, so
   we're going to use cgroupfs as the default cgroup-driver.
2. The $ char need to be escaped wc-notify-master.sh

Task: 23223
Story: 2003103

Change-Id: I995f5b82abadfdb7f78f7c098ac7a7f1e5c34fd3
2018-08-08 09:27:33 +00:00
David Rabel
7e23ee6be0 Docs: Replace non-existing command
user/index.rst : openstack help coe does not exit. Use openstack coe
cluster list instead.

Change-Id: I667214f315c326932d3800764bfad599cacd8474
2018-07-30 15:03:33 +02:00
Spyros Trigazis
974399a912 k8s_fedora: Add cloud_provider_enabled label
Add 'cloud_provider_enabled' label for the k8s_fedora_atomic
driver. Defaults to true. For specific kubernetes versions if
'cinder' is selected as a 'volume_driver', it is implied that
the cloud provider will be enabled since they are combined.

The motivation for this change is that in environments with
high load to the OpenStack APIs, users might want to disable
the cloud provider.

story: 1775358
task: 1775358

Change-Id: I2920f699654af1f4ba45644ab60a04a3f70918fe
2018-07-13 09:39:08 +02:00
Zuul
1eb1f35a75 Merge "Add option to specify Cgroup driver for Kubelet" 2018-06-28 07:49:39 +00:00
Bharat Kunwar
ec58c23361 Add option to specify Cgroup driver for Kubelet
This patch allows specification of Cgroup driver for Kubelet service.
The necessity of this patch was realised after upgrading Docker to the
new community edition (17.3+) which defaults to  `cgroupfs` Cgroup
driver but on the other hand, Fedora Atomic (version 27) comes with
1.13. Cgroup drivers for Docker need to be identical for the two
services, Docker and Kubelet, need to be able to work together.

Story: 2002533
Task: 22079
Change-Id: Ia4b38a63ede59e18c8edb01e93acbb66f1e0b0e4
2018-06-12 12:31:14 +01:00
PanFengyun
9e97c8b8a7 Devicemapper storage driver need specified volume
For the 'devicemapper' storage driver, must specify volume and
the minimum value is 3GB.

Change-Id: I2b5ab83ac00b4a5bc6f113924e022f8952dd7766
Closes-Bug: #1772782
2018-06-05 11:00:05 +08:00
Daniel Abad
a015193025 Update ca related magnum comands to osc
After merging https://review.openstack.org/#/c/503952
update the according documentation to walk towards
deprecation of the magnum client
In addition, update old reference to bay in cluster commands.

Change-Id: Idf316f93dbc897ea0558da9b26a349644d4b98cf
Partially-Implements: blueprint deprecate-magnum-client
2018-05-11 10:35:09 +02:00
Zuul
f4267405cc Merge "[doc] Correct the non-existent link for the Fedora image" 2018-05-07 08:50:19 +00:00
Qian Min Chen
b319f720ad [doc] fix coredns correct image verison
queens coredns use 1.0.1 verison [1]

[1] https://github.com/openstack/magnum/blob/master/magnum/drivers/common/templates/kubernetes/fragments/core-dns-service.sh#L98

Change-Id: I553d3796993dcb90b8181b19c8e2f15f783af247
2018-04-28 09:44:10 +08:00
Qian Min Chen
b8fb70d610 [doc] Correct the non-existent link for the Fedora image
Change-Id: I7d94109d8917284bfed485c9ffb72b7b6dcb424d
2018-04-28 09:39:40 +08:00
Nguyen Hai
6215887bc1 Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
https://governance.openstack.org/tc/reference/project-testing-interface.html
http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html

Remove the '[build_sphinx]' section as described in:
http://lists.openstack.org/pipermail/openstack-dev/2018-March/128594.html

Change-Id: Ibd6c6e9cca238821099ce190784d077ffe4c2dee
2018-04-25 12:11:07 +00:00
Zuul
d1281d6130 Merge "Replace CentOS package mysql-devel > mariadb-devel" 2018-04-25 10:25:34 +00:00
Zuul
201ee76332 Merge "Make DNS pod autoscale" 2018-04-24 11:00:11 +00:00
Zuul
3975ca35bf Merge "fix a typo" 2018-04-22 18:44:39 +00:00
Feilong Wang
54a4ac9f84 Make DNS pod autoscale
DNS service is a very critical service in k8s world, though it's not
a part of k8s itself. So it would be nice to have it replicate more
than 1 and on differents nodes to have high availbility. Otherwise,
services running on k8s cluster will be broken if the node contains
DNS pod down. Another sample is, when user would like to do a cluster
upgrade, services will be borken when the node containers DNS pod
being replaced. You can find lots of discussion about this, please
refer [1],[2] and [3].

[1] https://github.com/kubernetes/kubeadm/issues/128
[2] https://github.com/kubernetes/kubernetes/issues/40063
[3] https://github.com/kubernetes/kops/issues/2693

Closes-Bug: #1757554

Change-Id: Ic64569d4bdcf367955398d5badef70e7afe33bbb
2018-04-19 23:09:55 +12:00
Zuul
283a27d69c Merge "Adding glossary.rst" 2018-04-18 12:43:36 +00:00
wangqi
1c0b97277c fix a typo
Change-Id: I070ed0cb6ebe44b895a0fea602d02f917bfe4e4a
2018-04-18 04:23:25 +00:00
sayalilunkad
d179c37ca2 Adding documentations about network in vms
This covers the possible network options for nodes in a magnum cluster.

Change-Id: I67b554889a7f21f0ce8c305717b6dad6b8a12ab3
2018-04-11 18:37:35 +02:00
sayalilunkad
16ce059e3e Adding glossary.rst
This patch attemps to take some of the content from the guides and make a
glossary which can then be referenced where needed.

Change-Id: Ifb360401556fb0aacd4136e7a08ee1440b7c9d62
Partially-Implements: blueprint docs-refactor
2018-04-10 11:31:27 +02:00
Kirsten G
57b9457006 Add minimum system requirements to docs
Added subsection in contributor quickstart guide with minimum system
resources required to use Magnum with DevStack.

Change-Id: Icd6b3ecd7011a75c0ad0a50943c1934eeeb7351a
2018-02-28 10:24:38 -08:00
Zuul
742014d8ea Merge "Corrected some misspellings in magnum" 2018-02-23 10:17:18 +00:00
Spyros Trigazis
30785acd3c Update kubernetes dashboard to v1.8.3
Add the RBAC enabled kubernetes-dashboard with
version v1.8.3.

Related-Bug: #1680900
Change-Id: I68a17d22dda9661c81f40bcc9db06f7456790958
2018-02-23 09:42:44 +13:00
Zuul
095b0146bb Merge "k8s: allow passing extra options to kube daemons" 2018-02-22 19:43:45 +00:00
Zuul
4be27a7c86 Merge "[kubernetes] add ingress controller" 2018-02-22 19:43:43 +00:00
Ricardo Rocha
4efb58b28d k8s: allow passing extra options to kube daemons
Define a set of new labels to pass additional options to the kubernetes
daemons - kubelet_options, kubeapi_options, kubescheduler_options,
kubecontroller_options, kubeproxy_options.

In all cases the default value is "", meaning no extra options are
passed to the daemons.

Change-Id: Idabe33b1365c7530edc53d1a81dee3c857a4ea47
Closes-Bug: #1701223
2018-02-22 15:54:46 +00:00
Ricardo Rocha
0b18989a50 [kubernetes] add ingress controller
Add ingress controller configuration and backend to kubernetes clusters.

A new label 'ingress_controller' defines which backend should serve
ingress, with traefik added as the only option for now.

It is defined as a DaemonSet, with instances on all nodes defined with a
certain role. This role is set as an additional cluster label
'ingress_controller_role', with a default value of 'ingress'.

For now no node is automatically set with this role, with users or operators
having to do this manually after cluster creation.

Change-Id: I5175cf91f37e2988dc3d33042558d994810842f3
Closes-Bug: #1738808
2018-02-22 15:54:46 +00:00
Spyros Trigazis
d95ba4d1ff Run etcd and flanneld in a system container
In Fedora Atomic 27 etcd and flanneld are removed from the base image.
Install them as a system containers.

* update docker-storage configuration
* add etcd and flannel tags as labels

Change-Id: I2103c7c3d50f4b68ddc11abff72bc9e3f22839f3
Closes-Bug: #1735381
2018-02-22 12:30:27 +00:00
Zuul
f61ef81ef1 Merge "Using v1.9.3 as default k8s version" 2018-02-21 11:10:32 +00:00
Feilong Wang
838b8daf6e Support calico as network driver
Adding calico as Kubernetes network driver to support network
policy of Kubernetes. Network policy is a very important feature
for k8s production use. See more information about k8s network
policy at [1] and [2], as for calico please refer [3] and [4].

[1] https://kubernetes.io/docs/concepts/services-networking/network-policies/
[2] http://blog.kubernetes.io/2017/10/enforcing-network-policies-in-kubernetes.html
[3] https://www.projectcalico.org/calico-network-policy-comes-to-kubernetes/
[4] https://cloudplatform.googleblog.com/2017/09/network-policy-support-for-kubernetes-with-calico.html

Closes-Bug: #1746379

Change-Id: I135a46cd32a67d73d8e64ac5bbc4debfae6c4568
2018-02-21 14:47:54 +13:00
Feilong Wang
1e36980cac Using v1.9.3 as default k8s version
Currently, the default k8s version in Magnum is v1.7.4, but based on the
deprecation policy of k8s. It will be deprecated at March 2018, see
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
So it would be nice to change the default k8s version to latest.

Closes-Bug: #1750549

Change-Id: I053e50ac879b031c8438a2587a99de44e0360c47
2018-02-21 00:36:12 +13:00
Ricardo Rocha
faa9e90402 [k8s] allow enabling kubernetes cert manager api
Add a new label 'cert_manager_api' to kubernetes clusters controlling the
enable/disable of the kubernetes certificate manager api.

The same cluster cert/key pair is used by this api. The heat agent is used
to install the key in the master node(s), as this is required for kubernetes
to later sign new certificate requests.

The master template init order is changed so the heat agent is launched
previous to enabling the services - the controller manager requires the CA key
to be locally available before being launched.

Change-Id: Ibf85147316e3a194d8a3f92cbb4ae9ce8e16c98f
Partial-Bug: #1734318
2018-02-15 14:25:48 +00:00
Zuul
c6e7b290ab Merge "Document use of kube_tag label" 2018-02-14 12:52:04 +00:00
Zuul
cb99e3198a Merge "Change swarm ClusterTemplate coe to swarm-mode" 2018-02-14 10:47:03 +00:00
Florian Haas
11e7f330fb Document use of kube_tag label
Explain how to select a specific Kubernetes version by specifying the
kube_tag label.

In the process, also fix the broken list of images that must be
mirrored, immediately above kube_tag.

In addition, fix an unrelated whitespace error in
specs/containers-service.rst which would cause tox -e docs to fail.

Change-Id: Ieff1474b74e0b1595c05d945b69bec16bfef9c3b
2018-02-13 13:40:34 +00:00
Zuul
ae21e41ec4 Merge "Driver's name are case sensitive" 2018-02-13 09:38:10 +00:00
Kirsten G
1caa8857e9 Change swarm ClusterTemplate coe to swarm-mode
Update contributor guide instructions for using devstack. When creating
a swarm ClusterTemplate in devstack, coe should be set to swarm-mode.

Change-Id: I03083708e22888a0f10f7802c5883a3ec105485f
2018-02-09 09:41:25 -08:00
Feilong Wang
4d39559389 Driver's name are case sensitive
The network driver and volume driver used in template are case
sensitive, so it would be nice to use the correct case in document
to avoid confusion.

Closes-Bug: #1748307

Change-Id: I1709acbd18a37f5e5987b3a0eb9a0e8b3ac0e42a
2018-02-09 15:00:54 +13:00
Daniel Abad
5b4563933e Replace CentOS package mysql-devel > mariadb-devel
MySQL is no longer in CentOS repos. MariaDB has become the
default database offered. MariaDB is considered a binary
drop-in replacement for MySQL.
https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/

Change-Id: Ib0c971361ae0e5742cf0beaad2859579df601e5b
2018-02-08 14:10:03 +00:00
Spyros Trigazis
2329cb7fb4 k8s: Fix kubelet, add RBAC and pass e2e tests
Due to a few several small connected patches for the
fedora atomic driver, this patch includes 4 smaller patches.

Patch 1:
k8s: Do not start kubelet and kube-proxy on master

Patch [1], misses the removal of kubelet and kube-proxy from
enable-services-master.sh and therefore they are started if they
exist in the image or the script will fail.

https://review.openstack.org/#/c/533593/
Closes-Bug: #1726482

Patch 2:
k8s: Set require-kubeconfig when needed

From kubernetes 1.8 [1] --require-kubeconfig is deprecated and
in kubernetes 1.9 it is removed.

Add --require-kubeconfig only for k8s <= 1.8.

[1] https://github.com/kubernetes/kubernetes/issues/36745

Closes-Bug: #1718926

https://review.openstack.org/#/c/534309/

Patch 3:
k8s_fedora: Add RBAC configuration

* Make certificates and kubeconfigs compatible
  with NodeAuthorizer [1].
* Add CoreDNS roles and rolebindings.
* Create the system:kube-apiserver-to-kubelet ClusterRole.
* Bind the system:kube-apiserver-to-kubelet ClusterRole to
  the kubernetes user.
* remove creation of kube-system namespaces, it is created
  by default
* update client cert generation in the conductor with
  kubernetes' requirements
* Add --insecure-bind-address=127.0.0.1 to work on
  multi-master too. The controller manager on each
  node needs to contact the apiserver (on the same node)
  on 127.0.0.1:8080

[1] https://kubernetes.io/docs/admin/authorization/node/

Closes-Bug: #1742420
Depends-On: If43c3d0a0d83c42ff1fceffe4bcc333b31dbdaab
https://review.openstack.org/#/c/527103/

Patch 4:
k8s_fedora: Update coredns config to pass e2e

To pass the e2e conformance tests, coredns needs to
be configured with POD-MODE verified. Otherwise, pods
won't be resolvable [1].

[1] https://github.com/coredns/coredns/tree/master/plugin/kubernetes

https://review.openstack.org/#/c/528566/
Closes-Bug: #1738633

Change-Id: Ibd5245ca0f5a11e1d67a2514cebb2ffe8aa5e7de
2018-02-08 13:35:00 +00:00
Ricardo Rocha
53d386dc01 Add label availability_zone
Add a new label 'availability_zone' allowing users to specify the AZ
the nodes should be deployed in. Only one AZ can be passed for this
first implementation.

Change-Id: I9e55d7631191fffa6cc6b9bebbeb4faf2497815b
Partially-Implements: blueprint magnum-availability-zones
2018-02-05 15:03:59 +00:00
liumk
7142ba7d61 Corrected some misspellings in magnum
Change-Id: I2cbf5451e110583e25ca649285ea54eb613e9ee6
2018-02-02 00:34:32 -05:00