Bug 1473556

Summary: OpenShift advance installation should check for invalid characters in hostnames
Product: OpenShift Container Platform Reporter: Javier Ramirez <javier.ramirez>
Component: InstallerAssignee: Scott Dodson <sdodson>
Status: CLOSED WONTFIX QA Contact: Johnny Liu <jialiu>
Severity: medium Docs Contact:
Priority: low    
Version: 3.6.0CC: aos-bugs, jokerman, mmccomas
Target Milestone: ---   
Target Release: 3.10.0   
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: 2018-04-16 14:51:50 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:
Embargoed:
Attachments:
Description Flags
ansible-playbook with the -vvv flag none

Description Javier Ramirez 2017-07-21 07:29:03 UTC
Created attachment 1302185 [details]
ansible-playbook with the -vvv flag

Description of problem:
When using invalid characters in hostnames, such as "-" the installer finishes and it only mention that the node failed once in the RECAP section.

Version-Release number of the following components:
# rpm -q openshift-ansible
openshift-ansible-3.5.91-1.git.0.28b3ddb.el7.noarch
# rpm -q ansible
ansible-2.2.3.0-1.el7.noarch
# ansible --version
ansible 2.2.3.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides


How reproducible:

Always

Steps to Reproduce:
1. Use an invalid character in the hostname of a node/master
2.
3.

Actual results:
Please include the entire output from the last TASK line through the end of output if an error is generated

Expected results:
Installation to fail with an explicit message and installation not to finish


Additional info:
In the node that fail to register, you can find the following in the atomic-openshift-node logs:
- Jul 21 08:53:15 node35_1.example.com atomic-openshift-node[23719]: E0721 08:53:15.769185   23719 kubelet_node_status.go:98] Unable to register node "node35_1" with API server: Node "node35_1" is invalid: metadata.name: Invalid value: "node35_1": must match the regex [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* (e.g. 'example.com')