From 7f2b68b7df39ce918f4db36bddf77ee6adc18e94 Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Sun, 16 Jul 2017 15:19:59 -0400 Subject: [PATCH] Update generic controller --- core/pkg/ingress/annotations/auth/main.go | 4 +- .../pkg/ingress/annotations/auth/main_test.go | 4 +- core/pkg/ingress/annotations/authreq/main.go | 2 +- .../ingress/annotations/authreq/main_test.go | 4 +- core/pkg/ingress/annotations/authtls/main.go | 2 +- .../ingress/annotations/authtls/main_test.go | 4 +- core/pkg/ingress/annotations/class/main.go | 2 +- .../ingress/annotations/class/main_test.go | 4 +- core/pkg/ingress/annotations/cors/main.go | 2 +- .../pkg/ingress/annotations/cors/main_test.go | 4 +- .../ingress/annotations/healthcheck/main.go | 2 +- .../annotations/healthcheck/main_test.go | 4 +- .../ingress/annotations/ipwhitelist/main.go | 2 +- .../annotations/ipwhitelist/main_test.go | 4 +- core/pkg/ingress/annotations/parser/main.go | 2 +- .../ingress/annotations/parser/main_test.go | 4 +- .../annotations/portinredirect/main.go | 2 +- .../annotations/portinredirect/main_test.go | 4 +- core/pkg/ingress/annotations/proxy/main.go | 2 +- .../ingress/annotations/proxy/main_test.go | 4 +- .../pkg/ingress/annotations/ratelimit/main.go | 2 +- .../annotations/ratelimit/main_test.go | 4 +- core/pkg/ingress/annotations/rewrite/main.go | 2 +- .../ingress/annotations/rewrite/main_test.go | 4 +- .../annotations/secureupstream/main.go | 2 +- .../annotations/secureupstream/main_test.go | 4 +- .../annotations/sessionaffinity/main.go | 2 +- .../annotations/sessionaffinity/main_test.go | 4 +- core/pkg/ingress/annotations/snippet/main.go | 2 +- .../ingress/annotations/snippet/main_test.go | 4 +- .../annotations/sslpassthrough/main.go | 2 +- .../annotations/sslpassthrough/main_test.go | 4 +- core/pkg/ingress/controller/annotations.go | 2 +- .../ingress/controller/annotations_test.go | 4 +- .../ingress/controller/backend_ssl_test.go | 2 +- core/pkg/ingress/controller/controller.go | 4 +- core/pkg/ingress/controller/launch.go | 2 +- core/pkg/ingress/resolver/main.go | 2 +- core/pkg/ingress/status/election.go | 122 ---------------- core/pkg/ingress/status/election_test.go | 132 ------------------ core/pkg/ingress/status/status.go | 68 ++++++--- core/pkg/ingress/status/status_test.go | 6 +- core/pkg/ingress/store/main.go | 2 +- core/pkg/ingress/types.go | 2 +- core/pkg/k8s/main.go | 2 +- core/pkg/k8s/main_test.go | 2 +- 46 files changed, 116 insertions(+), 334 deletions(-) delete mode 100644 core/pkg/ingress/status/election.go delete mode 100644 core/pkg/ingress/status/election_test.go diff --git a/core/pkg/ingress/annotations/auth/main.go b/core/pkg/ingress/annotations/auth/main.go index 220280f3e..89775d6b1 100644 --- a/core/pkg/ingress/annotations/auth/main.go +++ b/core/pkg/ingress/annotations/auth/main.go @@ -24,8 +24,8 @@ import ( "regexp" "github.com/pkg/errors" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ing_errors "k8s.io/ingress/core/pkg/ingress/errors" diff --git a/core/pkg/ingress/annotations/auth/main_test.go b/core/pkg/ingress/annotations/auth/main_test.go index aec7549b3..df042ad4f 100644 --- a/core/pkg/ingress/annotations/auth/main_test.go +++ b/core/pkg/ingress/annotations/auth/main_test.go @@ -25,10 +25,10 @@ import ( "github.com/pkg/errors" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) func buildIngress() *extensions.Ingress { diff --git a/core/pkg/ingress/annotations/authreq/main.go b/core/pkg/ingress/annotations/authreq/main.go index 5523fbd7f..bb6799780 100644 --- a/core/pkg/ingress/annotations/authreq/main.go +++ b/core/pkg/ingress/annotations/authreq/main.go @@ -21,7 +21,7 @@ import ( "regexp" "strings" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ing_errors "k8s.io/ingress/core/pkg/ingress/errors" diff --git a/core/pkg/ingress/annotations/authreq/main_test.go b/core/pkg/ingress/annotations/authreq/main_test.go index 12df0d93b..de9249443 100644 --- a/core/pkg/ingress/annotations/authreq/main_test.go +++ b/core/pkg/ingress/annotations/authreq/main_test.go @@ -21,9 +21,9 @@ import ( "reflect" "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/apimachinery/pkg/util/intstr" ) diff --git a/core/pkg/ingress/annotations/authtls/main.go b/core/pkg/ingress/annotations/authtls/main.go index 7db7f97c1..aeb95b19a 100644 --- a/core/pkg/ingress/annotations/authtls/main.go +++ b/core/pkg/ingress/annotations/authtls/main.go @@ -18,7 +18,7 @@ package authtls import ( "github.com/pkg/errors" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ing_errors "k8s.io/ingress/core/pkg/ingress/errors" diff --git a/core/pkg/ingress/annotations/authtls/main_test.go b/core/pkg/ingress/annotations/authtls/main_test.go index 50057503b..a3613bb15 100644 --- a/core/pkg/ingress/annotations/authtls/main_test.go +++ b/core/pkg/ingress/annotations/authtls/main_test.go @@ -19,10 +19,10 @@ package authtls import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) func buildIngress() *extensions.Ingress { diff --git a/core/pkg/ingress/annotations/class/main.go b/core/pkg/ingress/annotations/class/main.go index 1c1066e16..2ff73914c 100644 --- a/core/pkg/ingress/annotations/class/main.go +++ b/core/pkg/ingress/annotations/class/main.go @@ -18,7 +18,7 @@ package class import ( "github.com/golang/glog" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" "k8s.io/ingress/core/pkg/ingress/errors" diff --git a/core/pkg/ingress/annotations/class/main_test.go b/core/pkg/ingress/annotations/class/main_test.go index f48525078..45f7c02e7 100644 --- a/core/pkg/ingress/annotations/class/main_test.go +++ b/core/pkg/ingress/annotations/class/main_test.go @@ -19,9 +19,9 @@ package class import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) func TestIsValidClass(t *testing.T) { diff --git a/core/pkg/ingress/annotations/cors/main.go b/core/pkg/ingress/annotations/cors/main.go index c460f8215..37aca7986 100644 --- a/core/pkg/ingress/annotations/cors/main.go +++ b/core/pkg/ingress/annotations/cors/main.go @@ -17,7 +17,7 @@ limitations under the License. package cors import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ) diff --git a/core/pkg/ingress/annotations/cors/main_test.go b/core/pkg/ingress/annotations/cors/main_test.go index 480356ca8..330b059f4 100644 --- a/core/pkg/ingress/annotations/cors/main_test.go +++ b/core/pkg/ingress/annotations/cors/main_test.go @@ -19,9 +19,9 @@ package cors import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) const ( diff --git a/core/pkg/ingress/annotations/healthcheck/main.go b/core/pkg/ingress/annotations/healthcheck/main.go index 973e911dc..7b63f068d 100644 --- a/core/pkg/ingress/annotations/healthcheck/main.go +++ b/core/pkg/ingress/annotations/healthcheck/main.go @@ -17,7 +17,7 @@ limitations under the License. package healthcheck import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" "k8s.io/ingress/core/pkg/ingress/resolver" diff --git a/core/pkg/ingress/annotations/healthcheck/main_test.go b/core/pkg/ingress/annotations/healthcheck/main_test.go index 09215b17b..14786bacc 100644 --- a/core/pkg/ingress/annotations/healthcheck/main_test.go +++ b/core/pkg/ingress/annotations/healthcheck/main_test.go @@ -19,10 +19,10 @@ package healthcheck import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/defaults" ) diff --git a/core/pkg/ingress/annotations/ipwhitelist/main.go b/core/pkg/ingress/annotations/ipwhitelist/main.go index a2b397477..6b624a454 100644 --- a/core/pkg/ingress/annotations/ipwhitelist/main.go +++ b/core/pkg/ingress/annotations/ipwhitelist/main.go @@ -22,7 +22,7 @@ import ( "github.com/pkg/errors" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/kubernetes/pkg/util/net/sets" "k8s.io/ingress/core/pkg/ingress/annotations/parser" diff --git a/core/pkg/ingress/annotations/ipwhitelist/main_test.go b/core/pkg/ingress/annotations/ipwhitelist/main_test.go index ba2c946a1..7aff64806 100644 --- a/core/pkg/ingress/annotations/ipwhitelist/main_test.go +++ b/core/pkg/ingress/annotations/ipwhitelist/main_test.go @@ -20,10 +20,10 @@ import ( "reflect" "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/defaults" "k8s.io/ingress/core/pkg/ingress/errors" diff --git a/core/pkg/ingress/annotations/parser/main.go b/core/pkg/ingress/annotations/parser/main.go index a35c80a38..929ff657f 100644 --- a/core/pkg/ingress/annotations/parser/main.go +++ b/core/pkg/ingress/annotations/parser/main.go @@ -19,7 +19,7 @@ package parser import ( "strconv" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/errors" ) diff --git a/core/pkg/ingress/annotations/parser/main_test.go b/core/pkg/ingress/annotations/parser/main_test.go index 8dd2db1b5..4bcc3188e 100644 --- a/core/pkg/ingress/annotations/parser/main_test.go +++ b/core/pkg/ingress/annotations/parser/main_test.go @@ -19,9 +19,9 @@ package parser import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) func buildIngress() *extensions.Ingress { diff --git a/core/pkg/ingress/annotations/portinredirect/main.go b/core/pkg/ingress/annotations/portinredirect/main.go index 2f264f32d..3854f7602 100644 --- a/core/pkg/ingress/annotations/portinredirect/main.go +++ b/core/pkg/ingress/annotations/portinredirect/main.go @@ -17,7 +17,7 @@ limitations under the License. package portinredirect import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" "k8s.io/ingress/core/pkg/ingress/resolver" diff --git a/core/pkg/ingress/annotations/portinredirect/main_test.go b/core/pkg/ingress/annotations/portinredirect/main_test.go index 46fe8ad92..4c43e2895 100644 --- a/core/pkg/ingress/annotations/portinredirect/main_test.go +++ b/core/pkg/ingress/annotations/portinredirect/main_test.go @@ -19,10 +19,10 @@ package portinredirect import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "fmt" diff --git a/core/pkg/ingress/annotations/proxy/main.go b/core/pkg/ingress/annotations/proxy/main.go index 035a812eb..529695c08 100644 --- a/core/pkg/ingress/annotations/proxy/main.go +++ b/core/pkg/ingress/annotations/proxy/main.go @@ -17,7 +17,7 @@ limitations under the License. package proxy import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" "k8s.io/ingress/core/pkg/ingress/resolver" diff --git a/core/pkg/ingress/annotations/proxy/main_test.go b/core/pkg/ingress/annotations/proxy/main_test.go index e7bdd4213..df8697e6b 100644 --- a/core/pkg/ingress/annotations/proxy/main_test.go +++ b/core/pkg/ingress/annotations/proxy/main_test.go @@ -19,10 +19,10 @@ package proxy import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/defaults" ) diff --git a/core/pkg/ingress/annotations/ratelimit/main.go b/core/pkg/ingress/annotations/ratelimit/main.go index 14034c714..4d95459ae 100644 --- a/core/pkg/ingress/annotations/ratelimit/main.go +++ b/core/pkg/ingress/annotations/ratelimit/main.go @@ -19,7 +19,7 @@ package ratelimit import ( "fmt" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ) diff --git a/core/pkg/ingress/annotations/ratelimit/main_test.go b/core/pkg/ingress/annotations/ratelimit/main_test.go index 4718851de..2fd3e1f05 100644 --- a/core/pkg/ingress/annotations/ratelimit/main_test.go +++ b/core/pkg/ingress/annotations/ratelimit/main_test.go @@ -19,9 +19,9 @@ package ratelimit import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/apimachinery/pkg/util/intstr" ) diff --git a/core/pkg/ingress/annotations/rewrite/main.go b/core/pkg/ingress/annotations/rewrite/main.go index 7b41c8b35..1e8dd60fc 100644 --- a/core/pkg/ingress/annotations/rewrite/main.go +++ b/core/pkg/ingress/annotations/rewrite/main.go @@ -17,7 +17,7 @@ limitations under the License. package rewrite import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" "k8s.io/ingress/core/pkg/ingress/resolver" diff --git a/core/pkg/ingress/annotations/rewrite/main_test.go b/core/pkg/ingress/annotations/rewrite/main_test.go index 38f224d9d..6529857f9 100644 --- a/core/pkg/ingress/annotations/rewrite/main_test.go +++ b/core/pkg/ingress/annotations/rewrite/main_test.go @@ -19,10 +19,10 @@ package rewrite import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/defaults" ) diff --git a/core/pkg/ingress/annotations/secureupstream/main.go b/core/pkg/ingress/annotations/secureupstream/main.go index 1bba55f99..33c979819 100644 --- a/core/pkg/ingress/annotations/secureupstream/main.go +++ b/core/pkg/ingress/annotations/secureupstream/main.go @@ -20,7 +20,7 @@ import ( "fmt" "github.com/pkg/errors" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" "k8s.io/ingress/core/pkg/ingress/resolver" diff --git a/core/pkg/ingress/annotations/secureupstream/main_test.go b/core/pkg/ingress/annotations/secureupstream/main_test.go index 3eea12dd7..b9cae3cb6 100644 --- a/core/pkg/ingress/annotations/secureupstream/main_test.go +++ b/core/pkg/ingress/annotations/secureupstream/main_test.go @@ -19,9 +19,9 @@ package secureupstream import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "fmt" "k8s.io/apimachinery/pkg/util/intstr" diff --git a/core/pkg/ingress/annotations/sessionaffinity/main.go b/core/pkg/ingress/annotations/sessionaffinity/main.go index b79c26139..032af3b77 100644 --- a/core/pkg/ingress/annotations/sessionaffinity/main.go +++ b/core/pkg/ingress/annotations/sessionaffinity/main.go @@ -21,7 +21,7 @@ import ( "github.com/golang/glog" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ) diff --git a/core/pkg/ingress/annotations/sessionaffinity/main_test.go b/core/pkg/ingress/annotations/sessionaffinity/main_test.go index 4a44389b1..5008c6b1e 100644 --- a/core/pkg/ingress/annotations/sessionaffinity/main_test.go +++ b/core/pkg/ingress/annotations/sessionaffinity/main_test.go @@ -19,10 +19,10 @@ package sessionaffinity import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) func buildIngress() *extensions.Ingress { diff --git a/core/pkg/ingress/annotations/snippet/main.go b/core/pkg/ingress/annotations/snippet/main.go index 8a6970d1b..3c1e5a212 100644 --- a/core/pkg/ingress/annotations/snippet/main.go +++ b/core/pkg/ingress/annotations/snippet/main.go @@ -17,7 +17,7 @@ limitations under the License. package snippet import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ) diff --git a/core/pkg/ingress/annotations/snippet/main_test.go b/core/pkg/ingress/annotations/snippet/main_test.go index 450a21487..b92abfc45 100644 --- a/core/pkg/ingress/annotations/snippet/main_test.go +++ b/core/pkg/ingress/annotations/snippet/main_test.go @@ -19,9 +19,9 @@ package snippet import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" ) func TestParse(t *testing.T) { diff --git a/core/pkg/ingress/annotations/sslpassthrough/main.go b/core/pkg/ingress/annotations/sslpassthrough/main.go index e6895c068..d08634e02 100644 --- a/core/pkg/ingress/annotations/sslpassthrough/main.go +++ b/core/pkg/ingress/annotations/sslpassthrough/main.go @@ -17,7 +17,7 @@ limitations under the License. package sslpassthrough import ( - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/parser" ing_errors "k8s.io/ingress/core/pkg/ingress/errors" diff --git a/core/pkg/ingress/annotations/sslpassthrough/main_test.go b/core/pkg/ingress/annotations/sslpassthrough/main_test.go index fc4c990e5..bf3e083d8 100644 --- a/core/pkg/ingress/annotations/sslpassthrough/main_test.go +++ b/core/pkg/ingress/annotations/sslpassthrough/main_test.go @@ -19,9 +19,9 @@ package sslpassthrough import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/apimachinery/pkg/util/intstr" ) diff --git a/core/pkg/ingress/controller/annotations.go b/core/pkg/ingress/controller/annotations.go index 90bf3634b..7aadb9ddd 100644 --- a/core/pkg/ingress/controller/annotations.go +++ b/core/pkg/ingress/controller/annotations.go @@ -18,7 +18,7 @@ package controller import ( "github.com/golang/glog" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/annotations/auth" "k8s.io/ingress/core/pkg/ingress/annotations/authreq" "k8s.io/ingress/core/pkg/ingress/annotations/authtls" diff --git a/core/pkg/ingress/controller/annotations_test.go b/core/pkg/ingress/controller/annotations_test.go index d96b6ccdc..c7efb6db6 100644 --- a/core/pkg/ingress/controller/annotations_test.go +++ b/core/pkg/ingress/controller/annotations_test.go @@ -19,10 +19,10 @@ package controller import ( "testing" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/ingress/core/pkg/ingress/defaults" "k8s.io/ingress/core/pkg/ingress/resolver" diff --git a/core/pkg/ingress/controller/backend_ssl_test.go b/core/pkg/ingress/controller/backend_ssl_test.go index e4408e480..a8109bff8 100644 --- a/core/pkg/ingress/controller/backend_ssl_test.go +++ b/core/pkg/ingress/controller/backend_ssl_test.go @@ -23,9 +23,9 @@ import ( "fmt" + api_v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" testclient "k8s.io/client-go/kubernetes/fake" - api_v1 "k8s.io/client-go/pkg/api/v1" cache_client "k8s.io/client-go/tools/cache" "k8s.io/ingress/core/pkg/ingress" "k8s.io/ingress/core/pkg/ingress/store" diff --git a/core/pkg/ingress/controller/controller.go b/core/pkg/ingress/controller/controller.go index bfb9d6d52..5de2f365f 100644 --- a/core/pkg/ingress/controller/controller.go +++ b/core/pkg/ingress/controller/controller.go @@ -29,14 +29,14 @@ import ( "github.com/golang/glog" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/runtime" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" unversionedcore "k8s.io/client-go/kubernetes/typed/core/v1" - api "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" "k8s.io/client-go/util/flowcontrol" diff --git a/core/pkg/ingress/controller/launch.go b/core/pkg/ingress/controller/launch.go index fbda376c6..87c480d42 100644 --- a/core/pkg/ingress/controller/launch.go +++ b/core/pkg/ingress/controller/launch.go @@ -14,9 +14,9 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/spf13/pflag" + api "k8s.io/api/core/v1" "k8s.io/apiserver/pkg/server/healthz" "k8s.io/client-go/kubernetes" - api "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" clientcmd_api "k8s.io/client-go/tools/clientcmd/api" diff --git a/core/pkg/ingress/resolver/main.go b/core/pkg/ingress/resolver/main.go index 6a00cb65f..7ace6123c 100644 --- a/core/pkg/ingress/resolver/main.go +++ b/core/pkg/ingress/resolver/main.go @@ -17,7 +17,7 @@ limitations under the License. package resolver import ( - api "k8s.io/client-go/pkg/api/v1" + api "k8s.io/api/core/v1" "k8s.io/ingress/core/pkg/ingress/defaults" ) diff --git a/core/pkg/ingress/status/election.go b/core/pkg/ingress/status/election.go deleted file mode 100644 index f1cd6e866..000000000 --- a/core/pkg/ingress/status/election.go +++ /dev/null @@ -1,122 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package status - -import ( - "encoding/json" - "os" - "time" - - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - client "k8s.io/client-go/kubernetes" - "k8s.io/client-go/kubernetes/scheme" - api "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/tools/record" - - "k8s.io/ingress/core/pkg/ingress/status/leaderelection" - "k8s.io/ingress/core/pkg/ingress/status/leaderelection/resourcelock" -) - -func getCurrentLeader(electionID, namespace string, c client.Interface) (string, *api.Endpoints, error) { - endpoints, err := c.Core().Endpoints(namespace).Get(electionID, meta_v1.GetOptions{}) - if err != nil { - return "", nil, err - } - val, found := endpoints.Annotations[resourcelock.LeaderElectionRecordAnnotationKey] - if !found { - return "", endpoints, nil - } - electionRecord := resourcelock.LeaderElectionRecord{} - if err = json.Unmarshal([]byte(val), &electionRecord); err != nil { - return "", nil, err - } - return electionRecord.HolderIdentity, endpoints, err -} - -// NewElection creates an election. 'namespace'/'election' should be an existing Kubernetes Service -// 'id' is the id if this leader, should be unique. -func NewElection(electionID, - id, - namespace string, - ttl time.Duration, - callback func(leader string), - c client.Interface) (*leaderelection.LeaderElector, error) { - - _, err := c.Core().Endpoints(namespace).Get(electionID, meta_v1.GetOptions{}) - if err != nil { - if errors.IsNotFound(err) { - _, err = c.Core().Endpoints(namespace).Create(&api.Endpoints{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: electionID, - }, - }) - if err != nil && !errors.IsConflict(err) { - return nil, err - } - } else { - return nil, err - } - } - - callbacks := leaderelection.LeaderCallbacks{ - OnStartedLeading: func(stop <-chan struct{}) { - callback(id) - }, - OnStoppedLeading: func() { - leader, _, err := getCurrentLeader(electionID, namespace, c) - if err != nil { - glog.Errorf("failed to get leader: %v", err) - // empty string means leader is unknown - callback("") - return - } - callback(leader) - }, - } - - broadcaster := record.NewBroadcaster() - hostname, err := os.Hostname() - if err != nil { - return nil, err - } - recorder := broadcaster.NewRecorder(scheme.Scheme, api.EventSource{ - Component: "ingress-leader-elector", - Host: hostname, - }) - - lock := resourcelock.ConfigMapLock{ - ConfigMapMeta: meta_v1.ObjectMeta{Namespace: namespace, Name: electionID}, - Client: c, - LockConfig: resourcelock.ResourceLockConfig{ - Identity: id, - EventRecorder: recorder, - }, - } - - config := leaderelection.LeaderElectionConfig{ - Lock: &lock, - LeaseDuration: ttl, - RenewDeadline: ttl / 2, - RetryPeriod: ttl / 4, - Callbacks: callbacks, - } - - return leaderelection.NewLeaderElector(config) -} diff --git a/core/pkg/ingress/status/election_test.go b/core/pkg/ingress/status/election_test.go deleted file mode 100644 index 3e6504d00..000000000 --- a/core/pkg/ingress/status/election_test.go +++ /dev/null @@ -1,132 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package status - -import ( - "encoding/json" - "testing" - "time" - - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/pkg/api" - api_v1 "k8s.io/client-go/pkg/api/v1" - - "k8s.io/ingress/core/pkg/ingress/status/leaderelection/resourcelock" -) - -func TestGetCurrentLeaderLeaderExist(t *testing.T) { - fkER := resourcelock.LeaderElectionRecord{ - HolderIdentity: "currentLeader", - LeaseDurationSeconds: 30, - AcquireTime: meta_v1.NewTime(time.Now()), - RenewTime: meta_v1.NewTime(time.Now()), - LeaderTransitions: 3, - } - leaderInfo, _ := json.Marshal(fkER) - fkEndpoints := api_v1.Endpoints{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "ingress-controller-test", - Namespace: api.NamespaceSystem, - Annotations: map[string]string{ - resourcelock.LeaderElectionRecordAnnotationKey: string(leaderInfo), - }, - }, - } - fk := fake.NewSimpleClientset(&api_v1.EndpointsList{Items: []api_v1.Endpoints{fkEndpoints}}) - identity, endpoints, err := getCurrentLeader("ingress-controller-test", api.NamespaceSystem, fk) - if err != nil { - t.Fatalf("expected identitiy and endpoints but returned error %s", err) - } - - if endpoints == nil { - t.Fatalf("returned nil but expected an endpoints") - } - - if identity != "currentLeader" { - t.Fatalf("returned %v but expected %v", identity, "currentLeader") - } -} - -func TestGetCurrentLeaderLeaderNotExist(t *testing.T) { - fkEndpoints := api_v1.Endpoints{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "ingress-controller-test", - Namespace: api.NamespaceSystem, - Annotations: map[string]string{}, - }, - } - fk := fake.NewSimpleClientset(&api_v1.EndpointsList{Items: []api_v1.Endpoints{fkEndpoints}}) - identity, endpoints, err := getCurrentLeader("ingress-controller-test", api.NamespaceSystem, fk) - if err != nil { - t.Fatalf("unexpeted error: %v", err) - } - - if endpoints == nil { - t.Fatalf("returned nil but expected an endpoints") - } - - if identity != "" { - t.Fatalf("returned %s but expected %s", identity, "") - } -} - -func TestGetCurrentLeaderAnnotationError(t *testing.T) { - fkEndpoints := api_v1.Endpoints{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "ingress-controller-test", - Namespace: api.NamespaceSystem, - Annotations: map[string]string{ - resourcelock.LeaderElectionRecordAnnotationKey: "just-test-error-leader-annotation", - }, - }, - } - fk := fake.NewSimpleClientset(&api_v1.EndpointsList{Items: []api_v1.Endpoints{fkEndpoints}}) - _, _, err := getCurrentLeader("ingress-controller-test", api.NamespaceSystem, fk) - if err == nil { - t.Errorf("expected error") - } -} - -func TestNewElection(t *testing.T) { - fk := fake.NewSimpleClientset(&api_v1.EndpointsList{Items: []api_v1.Endpoints{ - { - ObjectMeta: meta_v1.ObjectMeta{ - Name: "ingress-controller-test", - Namespace: api.NamespaceSystem, - }, - }, - { - ObjectMeta: meta_v1.ObjectMeta{ - Name: "ingress-controller-test-020", - Namespace: api.NamespaceSystem, - }, - }, - }}) - - ne, err := NewElection("ingress-controller-test", "startLeader", api.NamespaceSystem, 4*time.Second, func(leader string) { - // do nothing - go t.Logf("execute callback fun, leader is: %s", leader) - }, fk) - if err != nil { - t.Fatalf("unexpected error %v", err) - } - - if ne == nil { - t.Fatalf("unexpected nil") - } -} diff --git a/core/pkg/ingress/status/status.go b/core/pkg/ingress/status/status.go index be59818a1..2ea5d5dcd 100644 --- a/core/pkg/ingress/status/status.go +++ b/core/pkg/ingress/status/status.go @@ -19,21 +19,25 @@ package status import ( "fmt" "net" + "os" "sort" "sync" "time" "github.com/golang/glog" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - api_v1 "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/tools/leaderelection" + "k8s.io/client-go/tools/leaderelection/resourcelock" + "k8s.io/client-go/tools/record" "k8s.io/ingress/core/pkg/ingress/annotations/class" - "k8s.io/ingress/core/pkg/ingress/status/leaderelection" "k8s.io/ingress/core/pkg/ingress/store" "k8s.io/ingress/core/pkg/k8s" "k8s.io/ingress/core/pkg/strings" @@ -126,7 +130,7 @@ func (s statusSync) Shutdown() { } glog.Infof("removing address from ingress status (%v)", addrs) - s.updateStatus([]api_v1.LoadBalancerIngress{}) + s.updateStatus([]api.LoadBalancerIngress{}) } func (s *statusSync) run() { @@ -198,17 +202,49 @@ func NewStatusSyncer(config Config) Sync { // we need to use the defined ingress class to allow multiple leaders // in order to update information about ingress status - id := fmt.Sprintf("%v-%v", config.ElectionID, config.DefaultIngressClass) + electionID := fmt.Sprintf("%v-%v", config.ElectionID, config.DefaultIngressClass) if config.IngressClass != "" { - id = fmt.Sprintf("%v-%v", config.ElectionID, config.IngressClass) + electionID = fmt.Sprintf("%v-%v", config.ElectionID, config.IngressClass) } - le, err := NewElection(id, - pod.Name, pod.Namespace, 30*time.Second, - st.callback, config.Client) + callbacks := leaderelection.LeaderCallbacks{ + OnStartedLeading: func(stop <-chan struct{}) { + st.callback(pod.Name) + }, + OnStoppedLeading: func() { + st.callback("") + }, + } + + broadcaster := record.NewBroadcaster() + hostname, _ := os.Hostname() + + recorder := broadcaster.NewRecorder(scheme.Scheme, api.EventSource{ + Component: "ingress-leader-elector", + Host: hostname, + }) + + lock := resourcelock.ConfigMapLock{ + ConfigMapMeta: meta_v1.ObjectMeta{Namespace: pod.Namespace, Name: electionID}, + Client: config.Client.Core(), + LockConfig: resourcelock.ResourceLockConfig{ + Identity: electionID, + EventRecorder: recorder, + }, + } + + le, err := leaderelection.NewLeaderElector(leaderelection.LeaderElectionConfig{ + Lock: &lock, + LeaseDuration: 30 * time.Second, + RenewDeadline: 15 * time.Second, + RetryPeriod: 5 * time.Second, + Callbacks: callbacks, + }) + if err != nil { glog.Fatalf("unexpected error starting leader election: %v", err) } + st.elector = le return st } @@ -265,13 +301,13 @@ func (s *statusSync) isRunningMultiplePods() bool { } // sliceToStatus converts a slice of IP and/or hostnames to LoadBalancerIngress -func sliceToStatus(endpoints []string) []api_v1.LoadBalancerIngress { - lbi := []api_v1.LoadBalancerIngress{} +func sliceToStatus(endpoints []string) []api.LoadBalancerIngress { + lbi := []api.LoadBalancerIngress{} for _, ep := range endpoints { if net.ParseIP(ep) == nil { - lbi = append(lbi, api_v1.LoadBalancerIngress{Hostname: ep}) + lbi = append(lbi, api.LoadBalancerIngress{Hostname: ep}) } else { - lbi = append(lbi, api_v1.LoadBalancerIngress{IP: ep}) + lbi = append(lbi, api.LoadBalancerIngress{IP: ep}) } } @@ -279,7 +315,7 @@ func sliceToStatus(endpoints []string) []api_v1.LoadBalancerIngress { return lbi } -func (s *statusSync) updateStatus(newIPs []api_v1.LoadBalancerIngress) { +func (s *statusSync) updateStatus(newIPs []api.LoadBalancerIngress) { ings := s.IngressLister.List() var wg sync.WaitGroup wg.Add(len(ings)) @@ -319,7 +355,7 @@ func (s *statusSync) updateStatus(newIPs []api_v1.LoadBalancerIngress) { wg.Wait() } -func ingressSliceEqual(lhs, rhs []api_v1.LoadBalancerIngress) bool { +func ingressSliceEqual(lhs, rhs []api.LoadBalancerIngress) bool { if len(lhs) != len(rhs) { return false } @@ -336,7 +372,7 @@ func ingressSliceEqual(lhs, rhs []api_v1.LoadBalancerIngress) bool { } // loadBalancerIngressByIP sorts LoadBalancerIngress using the field IP -type loadBalancerIngressByIP []api_v1.LoadBalancerIngress +type loadBalancerIngressByIP []api.LoadBalancerIngress func (c loadBalancerIngressByIP) Len() int { return len(c) } func (c loadBalancerIngressByIP) Swap(i, j int) { c[i], c[j] = c[j], c[i] } diff --git a/core/pkg/ingress/status/status_test.go b/core/pkg/ingress/status/status_test.go index 7ffca82c6..bcf3ff7ea 100644 --- a/core/pkg/ingress/status/status_test.go +++ b/core/pkg/ingress/status/status_test.go @@ -23,12 +23,12 @@ import ( "testing" "time" + api_v1 "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" testclient "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/pkg/api" - api_v1 "k8s.io/client-go/pkg/api/v1" - extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1" "k8s.io/client-go/tools/cache" + "k8s.io/kubernetes/pkg/api" "k8s.io/ingress/core/pkg/ingress/annotations/class" cache_store "k8s.io/ingress/core/pkg/ingress/store" diff --git a/core/pkg/ingress/store/main.go b/core/pkg/ingress/store/main.go index 4fb6f7929..182899499 100644 --- a/core/pkg/ingress/store/main.go +++ b/core/pkg/ingress/store/main.go @@ -19,7 +19,7 @@ package store import ( "fmt" - api "k8s.io/client-go/pkg/api/v1" + api "k8s.io/api/core/v1" "k8s.io/client-go/tools/cache" ) diff --git a/core/pkg/ingress/types.go b/core/pkg/ingress/types.go index 163286003..5564079e5 100644 --- a/core/pkg/ingress/types.go +++ b/core/pkg/ingress/types.go @@ -21,9 +21,9 @@ import ( "github.com/spf13/pflag" + api "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apiserver/pkg/server/healthz" - api "k8s.io/client-go/pkg/api/v1" "k8s.io/ingress/core/pkg/ingress/annotations/auth" "k8s.io/ingress/core/pkg/ingress/annotations/authreq" diff --git a/core/pkg/k8s/main.go b/core/pkg/k8s/main.go index 082d0c455..82a1ecdcc 100644 --- a/core/pkg/k8s/main.go +++ b/core/pkg/k8s/main.go @@ -21,9 +21,9 @@ import ( "os" "strings" + api "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" - api "k8s.io/client-go/pkg/api/v1" ) // IsValidService checks if exists a service with the specified name diff --git a/core/pkg/k8s/main_test.go b/core/pkg/k8s/main_test.go index b606ceae7..820b1216e 100644 --- a/core/pkg/k8s/main_test.go +++ b/core/pkg/k8s/main_test.go @@ -20,9 +20,9 @@ import ( "os" "testing" + api "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" testclient "k8s.io/client-go/kubernetes/fake" - api "k8s.io/client-go/pkg/api/v1" ) func TestParseNameNS(t *testing.T) {