Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
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


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1140 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.