Bug 1367685 - [quick-install] Can't specify LB in arbitrary installer yaml
Summary: [quick-install] Can't specify LB in arbitrary installer yaml
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 3.3.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: 3.4.z
Assignee: Samuel Munilla
QA Contact: Gan Huang
URL:
Whiteboard:
Depends On: 1421053
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-08-17 08:54 UTC by Gan Huang
Modified: 2017-04-25 17:41 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
undefined
Clone Of:
Environment:
Last Closed: 2017-04-25 17:41:57 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1140 0 normal SHIPPED_LIVE OpenShift Container Platform atomic-openshift-utils bug fix and enhancement 2017-04-25 21:41:12 UTC

Description Gan Huang 2016-08-17 08:54:31 UTC
Description of problem:
In HA deployment, the role of "master_lb" must be specified in installer.cfg.yml, thus we have to use haproxy installed by openshift-ansible as lb, we can't specify external LB service on IAAS.

Version-Release number of selected component (if applicable):
atomic-openshift-utils-3.3.11-1.git.4.eac15df.el7.noarch

How reproducible:
always

Steps to Reproduce:
1.[root@ghuang-ansible ~]# cat installer.cfg.yml
ansible_callback_facts_yaml: /root/callback_facts.yaml
ansible_config: /usr/share/atomic-openshift-utils/ansible.cfg
ansible_inventory_path: /hosts
ansible_log_path: /tmp/ansible.log
deployment:
  ansible_ssh_user: root
  hosts:
  - connect_to: openshift-127.lab.eng.nay.redhat.com
    hostname: openshift-127.lab.eng.nay.redhat.com
    ip: 192.168.2.157
    node_labels: '{''region'': ''infra''}'
    public_hostname: openshift-127.lab.eng.nay.redhat.com
    public_ip: 10.66.147.127
    roles:
    - master
    - etcd
    - node
  - connect_to: openshift-111.lab.eng.nay.redhat.com
    hostname: openshift-111.lab.eng.nay.redhat.com
    ip: 192.168.2.158
    node_labels: '{''region'': ''infra''}'
    public_hostname: openshift-111.lab.eng.nay.redhat.com
    public_ip: 10.66.147.111
    roles:
    - master
    - etcd
    - node
  - connect_to: openshift-112.lab.eng.nay.redhat.com
    hostname: openshift-112.lab.eng.nay.redhat.com
    ip: 192.168.2.159
    node_labels: '{''region'': ''infra''}'
    public_hostname: openshift-112.lab.eng.nay.redhat.com
    public_ip: 10.66.147.112
    roles:
    - master
    - etcd
    - node
  - connect_to: openshift-106.lab.eng.nay.redhat.com
    hostname: openshift-106.lab.eng.nay.redhat.com
    ip: 192.168.2.162
    node_labels: '{''region'': ''app''}'
    public_hostname: openshift-106.lab.eng.nay.redhat.com
    public_ip: 10.66.147.106
    roles:
    - node
  - connect_to: openshift-121.lab.eng.nay.redhat.com
    hostname: openshift-121.lab.eng.nay.redhat.com
    ip: 192.168.2.161
    public_hostname: openshift-121.lab.eng.nay.redhat.com
    public_ip: 10.66.147.121
    roles:
    - storage
  master_routingconfig_subdomain: test.example
  openshift_hosted_registry_storage_access_modes: '[''ReadWriteMany'']'
  openshift_hosted_registry_storage_host: openshift-121.lab.eng.nay.redhat.com
  openshift_hosted_registry_storage_kind: nfs
  openshift_hosted_registry_storage_nfs_directory: /exports
  openshift_hosted_registry_storage_nfs_options: '*(rw,root_squash)'
  openshift_hosted_registry_storage_volume_name: registry
  proxy_exclude_hosts: ''
  proxy_http: ''
  proxy_https: ''
  roles:
    etcd: {}
    master:
      cluster_hostname: openshift-121.lab.eng.nay.redhat.com
      cluster_method: native
      cluster_public_hostname: openshift-121.lab.eng.nay.redhat.com
      openshift_master_htpasswd_users:
        user1: pass1
        user2: pass2
      openshift_master_identity_providers:
      - challenge: true
        filename: /etc/origin/master/htpasswd
        kind: HTPasswdPasswordIdentityProvider
        login: true
        name: htpasswd_auth
    node: {}
    storage: {}
variant: openshift-enterprise
variant_version: '3.3'
version: v2

2.atomic-openshift-installer -c installer.cfg.yml -u install
3.

Actual results:
ERROR: No master load balancer specified in config. You must provide the FQDN
of a load balancer to balance the API (port 8443) on all Master hosts.

https://docs.openshift.org/latest/install_config/install/advanced_install.html#multiple-masters


Expected results:
As a user, we should be able to specify the LB as we want in arbitrary installer yaml

Additional info:
When I added master_lb into installer.cfg.yml, 
inventory hosts file was changed to:

[OSEv3:vars]
openshift_master_cluster_method=native
openshift_master_cluster_hostname=openshift-103.lab.eng.nay.redhat.com
openshift_master_cluster_public_hostname=openshift-103.lab.eng.nay.redhat.com

[masters:vars]
cluster_method=native
cluster_public_hostname=openshift-121.lab.eng.nay.redhat.com
cluster_hostname=openshift-121.lab.eng.nay.redhat.com

They are conficted, and look like the variables under [OSEv3:vars] worked.

Comment 1 Scott Dodson 2017-02-10 02:04:00 UTC
I believe this is fixed in openshift-ansible-3.4.17 and later which allows the cluster hostname to be set without defining a load balancer.

https://github.com/openshift/openshift-ansible/pull/2683

Comment 2 Gan Huang 2017-02-15 09:19:19 UTC
BZ#1421053 is blocking the verification.

Comment 3 Gan Huang 2017-02-27 09:30:44 UTC
Verified with atomic-openshift-utils-3.4.66-1.git.0.dd202b2.el7.noarch

Able to specify a preconfigured LB in installer.cfg.yaml
#cat installer.cfg.yaml
ansible_callback_facts_yaml: /tmp/.ansible/callback_facts.yaml
ansible_inventory_path: /tmp/hosts
ansible_log_path: /tmp/ansible.log
deployment:
  ansible_ssh_user: root
  hosts:
  - connect_to: openshift-102.lab.eng.nay.redhat.com
    hostname: openshift-102.lab.eng.nay.redhat.com
    ip: 192.168.2.157
    node_labels: '{''region'': ''infra''}'
    public_hostname: openshift-102.lab.eng.nay.redhat.com
    public_ip: 10.66.147.127
    roles:
    - master
    - etcd
    - node
  - connect_to: openshift-115.lab.eng.nay.redhat.com
    hostname: openshift-115.lab.eng.nay.redhat.com
    ip: 192.168.2.158
    node_labels: '{''region'': ''infra''}'
    public_hostname: openshift-115.lab.eng.nay.redhat.com
    public_ip: 10.66.147.111
    roles:
    - master
    - etcd
    - node
  - connect_to: openshift-127.lab.eng.nay.redhat.com
    hostname: openshift-127.lab.eng.nay.redhat.com
    ip: 192.168.2.159
    node_labels: '{''region'': ''infra''}'
    public_hostname: openshift-127.lab.eng.nay.redhat.com
    public_ip: 10.66.147.112
    roles:
    - master
    - etcd
    - node
  - connect_to: openshift-128.lab.eng.nay.redhat.com
    hostname: openshift-128.lab.eng.nay.redhat.com
    ip: 192.168.2.162
    node_labels: '{''region'': ''app''}'
    public_hostname: openshift-128.lab.eng.nay.redhat.com
    public_ip: 10.66.147.106
    roles:
    - node
  - connect_to: openshift-131.lab.eng.nay.redhat.com
    hostname: openshift-131.lab.eng.nay.redhat.com
    ip: 192.168.2.161
    public_hostname: openshift-131.lab.eng.nay.redhat.com
    public_ip: 10.66.147.121
    roles:
    - storage
  - connect_to: openshift-156.lab.eng.nay.redhat.com
    hostname: openshift-156.lab.eng.nay.redhat.com
    ip: 192.168.2.160
    preconfigured: true
    public_hostname: openshift-156.lab.eng.nay.redhat.com
    public_ip: 10.66.147.124
    roles:
    - master_lb
  master_routingconfig_subdomain: test.example
  openshift_hosted_registry_storage_access_modes: '[''ReadWriteMany'']'
  openshift_hosted_registry_storage_host: openshift-131.lab.eng.nay.redhat.com
  openshift_hosted_registry_storage_kind: nfs
  openshift_hosted_registry_storage_nfs_directory: /exports
  openshift_hosted_registry_storage_nfs_options: '*(rw,root_squash)'
  openshift_hosted_registry_storage_volume_name: registry
  proxy_exclude_hosts: ''
  proxy_http: ''
  proxy_https: ''
  roles:
    etcd: {}
    master:
      openshift_master_htpasswd_users:
        user1: pass1
        user2: pass2
      openshift_master_identity_providers:
      - challenge: true
        filename: /etc/origin/master/htpasswd
        kind: HTPasswdPasswordIdentityProvider
        login: true
        name: htpasswd_auth
    master_lb: {}
    node: {}
    storage: {}
variant: openshift-enterprise
variant_version: '3.4'
version: v2

The generated hosts file is correct.
#cat hosts
[OSEv3:children]
nodes
nfs
masters
lb
etcd

[OSEv3:vars]
openshift_hosted_registry_storage_volume_name=registry
openshift_master_default_subdomain=test.example
openshift_hosted_registry_storage_nfs_options=*(rw,root_squash)
ansible_ssh_user=root
openshift_hosted_registry_storage_access_modes=['ReadWriteMany']
openshift_hosted_registry_storage_kind=nfs
openshift_hosted_registry_storage_host=openshift-131.lab.eng.nay.redhat.com
openshift_hosted_registry_storage_nfs_directory=/exports
openshift_master_cluster_method=native
openshift_master_cluster_hostname=openshift-156.lab.eng.nay.redhat.com
openshift_master_cluster_public_hostname=openshift-156.lab.eng.nay.redhat.com
deployment_type=openshift-enterprise

[masters:vars]
openshift_master_htpasswd_users={'user2': 'pass2', 'user1': 'pass1'}
openshift_master_identity_providers=[{'login': True, 'filename': '/etc/origin/master/htpasswd', 'challenge': True, 'kind': 'HTPasswdPasswordIdentityProvider', 'name': 'htpasswd_auth'}]


[nodes]
openshift-102.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.127 openshift_ip=192.168.2.157 openshift_public_hostname=openshift-102.lab.eng.nay.redhat.com openshift_hostname=openshift-102.lab.eng.nay.redhat.com connect_to=openshift-102.lab.eng.nay.redhat.com openshift_node_labels="{'region': 'infra'}" openshift_schedulable=False
openshift-115.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.111 openshift_ip=192.168.2.158 openshift_public_hostname=openshift-115.lab.eng.nay.redhat.com openshift_hostname=openshift-115.lab.eng.nay.redhat.com connect_to=openshift-115.lab.eng.nay.redhat.com openshift_node_labels="{'region': 'infra'}" openshift_schedulable=False
openshift-127.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.112 openshift_ip=192.168.2.159 openshift_public_hostname=openshift-127.lab.eng.nay.redhat.com openshift_hostname=openshift-127.lab.eng.nay.redhat.com connect_to=openshift-127.lab.eng.nay.redhat.com openshift_node_labels="{'region': 'infra'}" openshift_schedulable=False
openshift-128.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.106 openshift_ip=192.168.2.162 openshift_public_hostname=openshift-128.lab.eng.nay.redhat.com openshift_hostname=openshift-128.lab.eng.nay.redhat.com connect_to=openshift-128.lab.eng.nay.redhat.com openshift_node_labels="{'region': 'app'}" openshift_schedulable=True

[nfs]
openshift-131.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.121 openshift_ip=192.168.2.161 openshift_public_hostname=openshift-131.lab.eng.nay.redhat.com openshift_hostname=openshift-131.lab.eng.nay.redhat.com connect_to=openshift-131.lab.eng.nay.redhat.com

[masters]
openshift-102.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.127 openshift_ip=192.168.2.157 openshift_public_hostname=openshift-102.lab.eng.nay.redhat.com openshift_hostname=openshift-102.lab.eng.nay.redhat.com connect_to=openshift-102.lab.eng.nay.redhat.com
openshift-115.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.111 openshift_ip=192.168.2.158 openshift_public_hostname=openshift-115.lab.eng.nay.redhat.com openshift_hostname=openshift-115.lab.eng.nay.redhat.com connect_to=openshift-115.lab.eng.nay.redhat.com
openshift-127.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.112 openshift_ip=192.168.2.159 openshift_public_hostname=openshift-127.lab.eng.nay.redhat.com openshift_hostname=openshift-127.lab.eng.nay.redhat.com connect_to=openshift-127.lab.eng.nay.redhat.com

[lb]

[etcd]
openshift-102.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.127 openshift_ip=192.168.2.157 openshift_public_hostname=openshift-102.lab.eng.nay.redhat.com openshift_hostname=openshift-102.lab.eng.nay.redhat.com connect_to=openshift-102.lab.eng.nay.redhat.com
openshift-115.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.111 openshift_ip=192.168.2.158 openshift_public_hostname=openshift-115.lab.eng.nay.redhat.com openshift_hostname=openshift-115.lab.eng.nay.redhat.com connect_to=openshift-115.lab.eng.nay.redhat.com
openshift-127.lab.eng.nay.redhat.com  openshift_public_ip=10.66.147.112 openshift_ip=192.168.2.159 openshift_public_hostname=openshift-127.lab.eng.nay.redhat.com openshift_hostname=openshift-127.lab.eng.nay.redhat.com connect_to=openshift-127.lab.eng.nay.redhat.com

Comment 5 errata-xmlrpc 2017-04-25 17:41:57 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:1140


Note You need to log in before you can comment on or make changes to this bug.