Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge pull request #685 from sjberman/bug_fixes #687

Merged
merged 2 commits into from
Apr 26, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 16 additions & 24 deletions cmd/k8s-bigip-ctlr/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -375,12 +375,11 @@ func setupNodePolling(
eventChan <-chan interface{},
kubeClient kubernetes.Interface,
) error {
if appMgr.IsNodePort() {
err := np.RegisterListener(appMgr.ProcessNodeUpdate)
if nil != err {
return fmt.Errorf("error registering node update listener for nodeport mode: %v",
err)
}
// Register appMgr to watch for node updates to keep track of watched nodes
err := np.RegisterListener(appMgr.ProcessNodeUpdate)
if nil != err {
return fmt.Errorf("error registering node update listener: %v",
err)
}

if 0 != len(vxlanMode) {
Expand Down Expand Up @@ -408,12 +407,6 @@ func setupNodePolling(
return fmt.Errorf("error registering node update listener for vxlan mode: %v",
err)
}
// Register appMgr to watch for node updates to keep track of watched nodes
err = np.RegisterListener(appMgr.ProcessNodeUpdate)
if nil != err {
return fmt.Errorf("error registering node update listener for appManager: %v",
err)
}
if eventChan != nil {
vxMgr.ProcessAppmanagerEvents(kubeClient)
}
Expand Down Expand Up @@ -599,7 +592,8 @@ func main() {
log.Fatalf("error connecting to the client: %v", err)
}
if *manageRoutes {
rclient, err := routeclient.New(config)
var rclient *routeclient.Client
rclient, err = routeclient.New(config)
appMgrParms.RouteClientV1 = rclient.RESTClient
if nil != err {
log.Fatalf("unable to create route client: err: %+v\n", err)
Expand All @@ -608,19 +602,17 @@ func main() {

appMgr := appmanager.NewManager(&appMgrParms)

if isNodePort || 0 != len(vxlanMode) {
intervalFactor := time.Duration(*nodePollInterval)
np := pollers.NewNodePoller(appMgrParms.KubeClient, intervalFactor*time.Second, *nodeLabelSelector)
err := setupNodePolling(appMgr, np, eventChan, appMgrParms.KubeClient)
if nil != err {
log.Fatalf("Required polling utility for node updates failed setup: %v",
err)
}

np.Run()
defer np.Stop()
intervalFactor := time.Duration(*nodePollInterval)
np := pollers.NewNodePoller(appMgrParms.KubeClient, intervalFactor*time.Second, *nodeLabelSelector)
err = setupNodePolling(appMgr, np, eventChan, appMgrParms.KubeClient)
if nil != err {
log.Fatalf("Required polling utility for node updates failed setup: %v",
err)
}

np.Run()
defer np.Stop()

setupWatchers(appMgr, 30*time.Second)
// Expose Prometheus metrics
http.Handle("/metrics", promhttp.Handler())
Expand Down
11 changes: 11 additions & 0 deletions docs/RELEASE-NOTES.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
Release Notes for BIG-IP Controller for Kubernetes
==================================================

v1.5.1
------

Bug Fixes
`````````
* :issues:`683` - Controller upgrades properly with new metadata field.
* :issues:`686` - Controller in cluster mode does not rely on vxlan name to configure pool members.

v1.5.0
------

Expand Down Expand Up @@ -34,6 +42,9 @@ Bug Fixes
Limitations
```````````
* Cannot apply app-root and url-rewrite annotations to the same resource; see: :issues:`675`
* If an older controller created resources, upgrading to the new version could
result in a python exception when adding metadata to virtuals: :issues:`683`
* If running the controller in cluster mode without a vxlan name, pool members are not created: :issues:`686`

v1.4.2
------
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,12 @@
<a href="http://clouddocs.f5.com/products/connectors/k8s-bigip-ctlr/%(url_version)s/_static/ATTRIBUTIONS.html">Attributions</a>
.. |kctlr| replace:: :code:`k8s-bigip-ctlr`
.. |kctlr-long| replace:: F5 BIG-IP Controller for Kubernetes
.. _F5 Resource: %(base_url)s/containers/latest/kubernetes/#f5-resource-properties
.. _F5 Resource: %(base_url)s/containers/latest/kubernetes/kctlr-f5-resource.html#f5-resource-properties
.. _Kubernetes Ingress: https://kubernetes.io/docs/concepts/services-networking/ingress/
.. _Flannel VxLAN in Kubernetes: %(base_url)s/containers/latest/kubernetes/flannel-bigip-info.html
.. _user documentation: %(base_url)s/containers/latest/kubernetes/index.html
.. _Integration Overview: %(base_url)s/containers/latest/kubernetes/index.html
.. _Assign IP addresses to BIG-IP virtual servers using IPAM: %(base_url)s/containers/latest/kubernetes/kctlr-manage-bigip-objects.html#assign-ip-addresses-to-big-ip-virtual-servers-using-ipam
.. _Assign IP addresses to BIG-IP virtual servers using IPAM: %(base_url)s/containers/latest/kubernetes/kctlr-manage-bigip-objects.html#attach-pools-to-a-virtual-server-using-ipam
.. _pools without virtual servers: %(base_url)s/containers/latest/kubernetes/kctlr-manage-bigip-objects.html#pools-without-virtual-servers
.. _Expose Services to External Traffic using Ingresses: %(base_url)s/containers/latest/kubernetes/kctlr-ingress.html
.. _f5 schema versions: %(base_url)s/containers/latest/releases_and_versioning.html#f5-schema
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
-e git+https://github.com/f5devcentral/f5-ctlr-agent.git@ffe7c22288502ca45f14bcf2b6d93295ca58a593#egg=f5-ctlr-agent
-e git+https://github.com/f5devcentral/f5-ctlr-agent.git@435f049bf1a36c56293e57686d88a0bcd03e4cf6#egg=f5-ctlr-agent