Bug 1372466

Summary: [DOCS] Installation documentation not intuitive on allowing for etcd high availability
Product: OpenShift Container Platform Reporter: Dave Sullivan <dsulliva>
Component: DocumentationAssignee: brice <bfallonf>
Status: CLOSED CURRENTRELEASE QA Contact: Johnny Liu <jialiu>
Severity: medium Docs Contact: Vikram Goyal <vigoyal>
Priority: medium    
Version: 3.2.1CC: aos-bugs, dsulliva, jialiu, jokerman, mmccomas
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-28 03:23:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Dave Sullivan 2016-09-01 19:30:45 UTC
Description of problem:

Reading over the following documentation

2.5.4. Single Master Examples

You can configure an environment with a single master and multiple nodes, and either a single embedded etcd or multiple external etcd hosts.

If you then look at each of the examples provided

2.2
2.3
2.4

As well as 

2.5.5. Multiple Masters Examples
You can configure an environment with multiple masters, multiple etcd hosts, and multiple nodes. Configuring multiple masters for high availability (HA) ensures that the cluster has no single point of failure.

One might think based on the examples that in order to get multi master/HA that you have to have separate systems for you masters and etcd nodes.

But there another example that could achieve etcd/HA and that is defining the same hostnames under the [master] and [etcd] blocks of the host inventory file

e.g. using 2.4
# Create an OSEv3 group that contains the master, nodes, etcd, and lb groups.
# The lb group lets Ansible configure HAProxy as the load balancing solution.
# Comment lb out if your load balancer is pre-configured.
[OSEv3:children]
masters
nodes
etcd
lb

# Set variables common for all OSEv3 hosts
[OSEv3:vars]
ansible_ssh_user=root
deployment_type=openshift-enterprise

# Uncomment the following to enable htpasswd authentication; defaults to
# DenyAllPasswordIdentityProvider.
#openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}]

# Native high availbility cluster method with optional load balancer.
# If no lb group is defined installer assumes that a load balancer has
# been preconfigured. For installation the value of
# openshift_master_cluster_hostname must resolve to the load balancer
# or to one or all of the masters defined in the inventory if no load
# balancer is present.
openshift_master_cluster_method=native
openshift_master_cluster_hostname=openshift-cluster.example.com
openshift_master_cluster_public_hostname=openshift-cluster.example.com

# override the default controller lease ttl
#osm_controller_lease_ttl=30

# host group for masters
[masters]
master1.example.com
master2.example.com
master3.example.com

# host group for etcd
[etcd]
master1.example.com
master2.example.com
master3.example.com

# Specify load balancer host
[lb]
lb.example.com

# host group for nodes, includes region info
[nodes]
master[1:3].example.com openshift_node_labels="{'region': 'infra', 'zone': 'default'}"
node1.example.com openshift_node_labels="{'region': 'primary', 'zone': 'east'}"
node2.example.com openshift_node_labels="{'region': 'primary', 'zone': 'west'}"


i.e. the master/etcd functionality can exist on the same host

If you demonstrate with the master and etcd as different hostnames then most likely users will follow this methodology when it may not be required.

So I think it would be worthwhile to show another example where you achieve HA where the master/etcd functionality are host on the same systems across multiple systems

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:


Document URL: 

https://access.redhat.com/documentation/en/openshift-enterprise/version-3.2/installation-and-configuration/#multiple-masters

Section Number and Name: 

See above

Describe the issue: 

see above

Suggestions for improvement: 

Additional information:

Comment 1 brice 2016-09-12 06:29:57 UTC
PR submitted for this BZ:

https://github.com/openshift/openshift-docs/pull/2826

Dave, can I please get an ack this was what you are asking for to fulfill this BZ? I'm concerned I may have missed something. I essentially copied the section about multiple masters that did exist, but tweaked it and added your example above.

WDYT?

Comment 2 Dave Sullivan 2016-09-12 17:00:23 UTC
Looks good to me.

Comment 3 brice 2016-09-12 23:09:01 UTC
Thanks much, Dave. I'll put this onto QA.

Johnny, can I please ask for you to look at the PR:

https://github.com/openshift/openshift-docs/pull/2826

I have put in an example installation and it would be good to see if it's correct.

Thanks!

Comment 4 Johnny Liu 2016-09-13 03:27:36 UTC
Looks good to me.

Comment 5 openshift-github-bot 2016-09-14 03:01:46 UTC
Commit pushed to master at https://github.com/openshift/openshift-docs

https://github.com/openshift/openshift-docs/commit/3632d922e60101264894197bd919071fc422a270
Merge pull request #2826 from bfallonf/etcd-bz1372466

Bug 1372466 example for master and etcd on same host

Comment 6 brice 2016-09-14 03:03:41 UTC
Thanks, Johnny. 

It's passed peer review as well. I'll move this BZ to release_pending.