Bug 1282520

Summary: Routing-daemon does not create the openshift_application_aliases policy
Product: OpenShift Container Platform Reporter: Timothy Williams <tiwillia>
Component: NetworkingAssignee: Miciah Dashiel Butler Masters <mmasters>
Networking sub component: router QA Contact: zhaozhanqi <zzhao>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: adellape, anli, aos-bugs, mmccomas
Version: 2.2.0   
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rubygem-openshift-origin-routing-daemon-0.26.4.3-1.el6op Doc Type: Bug Fix
Doc Text:
When the routing daemon is configured with F5 BIG-IPĀ®, the routing daemon is supposed to check for the `openshift_application_aliases` local traffic policy on startup and create the policy if it does not exist. However, a logic error introduced with the release of routing-daemon-0.23.2.0-1 in OpenShift Enterprise 2.2.5 prevented this check from functioning properly. If the `openshift_application_aliases` policy did not already exist, this caused the routing daemon to fail to configure policy rules. This bug fix addresses the logic error in the routing daemon's initialization, and as a result the routing daemon now creates the `openshift_application_aliases` local traffic policy on startup if required.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-17 17:11:35 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 Timothy Williams 2015-11-16 16:38:11 UTC
Description of problem:
When using F5, the routing-daemon does not create the openshift_application_aliases policy.

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

How reproducible:
Always

Steps to Reproduce:
1. When the openshift_application_aliases policy has not yet been created in F5, start the routing-daemon
2.
3.

Actual results:
The openshift_application_aliases policy is not created during initalization

Expected results:
The openshift_application_aliases policy is created during initialization

Additional Info:

Fixed in https://github.com/openshift/origin-server/commit/e131a07c8568877001d74b504315c2d838ac0a58

Comment 4 Anping Li 2015-11-23 11:21:43 UTC
Failed to get policy. 

/opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/models/f5-icontrol-rest.rb:98:in `rescue in rest_request': got ArgumentError exception: must pass :url (OpenShift::LBModelException)
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/models/f5-icontrol-rest.rb:64:in `rest_request'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/models/f5-icontrol-rest.rb:105:in `get'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/models/f5-icontrol-rest.rb:390:in `initialize'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/controllers/simple.rb:148:in `new'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/controllers/simple.rb:148:in `initialize'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/daemon.rb:168:in `new'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-routing-daemon-0.26.4.1/lib/openshift/routing/daemon.rb:168:in `initialize'
        from /etc/init.d/openshift-routing-daemon:74:in `new'
        from /etc/init.d/openshift-routing-daemon:74:in `block (2 levels) in <main>'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/application.rb:215:in `call'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/application.rb:215:in `block in start_proc'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/daemonize.rb:192:in `call'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/daemonize.rb:192:in `call_as_daemon'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/application.rb:219:in `start_proc'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/application.rb:255:in `start'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/controller.rb:69:in `run'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons.rb:188:in `block in run_proc'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `call'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `catch_exceptions'
        from /opt/rh/ruby193/root/usr/share/gems/gems/daemons-1.0.10/lib/daemons.rb:187:in `run_proc'
        from /etc/init.d/openshift-routing-daemon:73:in `block in <main>'
        from /etc/init.d/openshift-routing-daemon:37:in `block (2 levels) in locked'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-common-1.29.4.1/lib/openshift-origin-common/utils/path_utils.rb:94:in `block in flock'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-common-1.29.4.1/lib/openshift-origin-common/utils/path_utils.rb:88:in `open'
        from /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-common-1.29.4.1/lib/openshift-origin-common/utils/path_utils.rb:88:in `flock'
        from /etc/init.d/openshift-routing-daemon:36:in `block in locked'
        from /opt/rh/ruby193/root/usr/share/ruby/timeout.rb:69:in `timeout'
        from /etc/init.d/openshift-routing-daemon:35:in `locked'
        from /etc/init.d/openshift-routing-daemon:72:in `<main>'

Comment 5 Miciah Dashiel Butler Masters 2015-11-23 23:11:49 UTC
Sorry for the silly error.  The fix will be in the next puddle.

Comment 8 Miciah Dashiel Butler Masters 2015-11-24 19:47:01 UTC
The presence of pools in partitions other than the "Common" partition caused the most recent failures.  It appears the F5 BIG-IP test instance has some pools in non-Common partitions, probably in order to test a feature of the F5 integration in OpenShift 3, and the routing-daemon for OpenShift 2 fails on these pools.

The latest update to the routing-daemon filters out pools, monitors, and pool members that do not belong to the "Common" partition, which should resolve the most recent failures.

Comment 10 Anping Li 2015-11-25 02:53:52 UTC
openshift_application_aliases policy can be created. The pool can be added and removed, the application can be access via F5 Router. so move bug to F5.

Comment 12 errata-xmlrpc 2015-12-17 17:11:35 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://rhn.redhat.com/errata/RHSA-2015-2666.html