Bug 1507449

Summary: osm_controller_lease_ttl setting is not honored
Product: OpenShift Container Platform Reporter: Johnny Liu <jialiu>
Component: InstallerAssignee: Michael Gugino <mgugino>
Status: CLOSED ERRATA QA Contact: Johnny Liu <jialiu>
Severity: medium Docs Contact:
Priority: high    
Version: 3.7.0CC: aos-bugs, jokerman, mmccomas
Target Milestone: ---   
Target Release: 3.7.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: 2017-11-28 22:20:01 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:

Description Johnny Liu 2017-10-30 09:54:50 UTC
Description of problem:
According to https://github.com/openshift/openshift-ansible/blob/master/inventory/byo/hosts.example#L314, setting osm_controller_lease_ttl=10 in inventory host file, trigger a multiple master ha env installation, after installation, go to /etc/origin/master/master-config.yaml, found, no "controllerLeaseTTL" is set there. 

Go to openshift-ansible code, found the following lines are missing from roles/openshift_master/templates/master.yaml.v1.j2:
{% if openshift_master_ha | bool %}
controllerLeaseTTL: {{ openshift.master.controller_lease_ttl | default('30') }}
{% endif %}

This change is introduced by https://github.com/openshift/openshift-ansible/pull/4832. 

Understanding from me, controllerLeaseTTL is used for controller lease ttl, not relative to separate api and controllers services, am I right?

If my understanding is wrong, this change is by design, at least we need update hosts.example to tell users.


Version-Release number of the following components:
openshift-ansible-3.7.0-0.184.0.git.0.d407445.el7.noarch
How reproducible:

Steps to Reproduce:
1.
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:

Additional info:
Please attach logs from ansible-playbook with the -vvv flag

Comment 1 Scott Dodson 2017-10-30 13:35:57 UTC
We should probably consider ensuring that openshift_master_ha is set to true no matter what in 3.7 installs and/or look to get rid of all conditional logic based on its value.

Comment 2 Michael Gugino 2017-10-31 16:02:54 UTC
We should remove that from the docs.  It looks like that setting is ignored if controllerConfig.election is defined.

That was added in the same PR, here: https://github.com/openshift/openshift-ansible/pull/4832/files#diff-aedb994b078d72553713e06204255f38R52

from origin/pkg/cmd/server/api/v1/swagger_doc.go

'var map_ControllerConfig = map[string]string{
        "":                   "ControllerConfig holds configuration values for controllers",
        "election":           "Election defines the configuration for electing a controller instance to make changes to the cluster. If unspecified, the ControllerTTL value is checked to determine whether the legacy direct etcd election code will be used.",
        "serviceServingCert": "ServiceServingCert holds configuration for service serving cert signer which creates cert/key pairs for pods fulfilling a service to serve with.",
}

func (ControllerConfig) SwaggerDoc() map[string]string {
        return map_ControllerConfig
}

var map_ControllerElectionConfig = map[string]string{
        "":              "ControllerElectionConfig contains configuration values for deciding how a controller will be elected to act as leader.",
        "lockName":      "LockName is the resource name used to act as the lock for determining which controller instance should lead.",
        "lockNamespace": "LockNamespace is the resource namespace used to act as the lock for determining which controller instance should lead. It defaults to \"kube-system\"",
        "lockResource":  "LockResource is the group and resource name to use to coordinate for the controller lock. If unset, defaults to \"configmaps\".",
}
'

origin also denotes that ControllerTTL is deprecated and will be removed in 3.9.

Comment 3 Michael Gugino 2017-10-31 16:23:59 UTC
PR Created: https://github.com/openshift/openshift-ansible/pull/5949

Comment 5 Johnny Liu 2017-11-03 03:25:51 UTC
Verified this bug with openshift-ansible-docs-3.7.0-0.190.0.git.0.129e91a.el7.noarch, osm_controller_lease_ttl description is removed from hosts.example.

Comment 8 errata-xmlrpc 2017-11-28 22:20:01 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/RHSA-2017:3188