Fix IngressClass logic for newer releases (#7341)
* Fix IngressClass logic for newer releases Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com> * Change e2e tests for the new IngressClass presence * Fix chart and admission tests Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com> * Fix helm chart test Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com> * Fix reviews * Remove ingressclass code from admission
This commit is contained in:
parent
0d57e87819
commit
cef147a24d
68 changed files with 1450 additions and 637 deletions
|
|
@ -131,6 +131,7 @@ var _ = framework.DescribeAnnotation("affinity session-cookie-name", func() {
|
|||
Annotations: annotations,
|
||||
},
|
||||
Spec: networking.IngressSpec{
|
||||
IngressClassName: &f.IngressClass,
|
||||
Rules: []networking.IngressRule{
|
||||
{
|
||||
Host: host,
|
||||
|
|
|
|||
|
|
@ -22,9 +22,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/onsi/ginkgo"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
networking "k8s.io/api/networking/v1"
|
||||
"k8s.io/ingress-nginx/test/e2e/framework"
|
||||
)
|
||||
|
||||
|
|
@ -32,7 +30,7 @@ const (
|
|||
canaryService = "echo-canary"
|
||||
)
|
||||
|
||||
var _ = framework.DescribeAnnotation("canary-*", func() {
|
||||
var _ = framework.DescribeAnnotation("canary", func() {
|
||||
f := framework.NewDefaultFramework("canary")
|
||||
|
||||
ginkgo.BeforeEach(func() {
|
||||
|
|
@ -327,15 +325,25 @@ var _ = framework.DescribeAnnotation("canary-*", func() {
|
|||
f.Namespace, canaryService, 80, canaryAnnotations)
|
||||
f.EnsureIngress(canaryIng)
|
||||
|
||||
err := framework.UpdateIngress(f.KubeClientSet, f.Namespace, canaryIngName,
|
||||
func(ingress *networking.Ingress) error {
|
||||
ingress.ObjectMeta.Annotations = map[string]string{
|
||||
"nginx.ingress.kubernetes.io/canary": "true",
|
||||
"nginx.ingress.kubernetes.io/canary-by-header": "CanaryByHeader2",
|
||||
}
|
||||
return nil
|
||||
f.WaitForNginxServer(host,
|
||||
func(server string) bool {
|
||||
return strings.Contains(server, "server_name foo")
|
||||
})
|
||||
|
||||
newAnnotations := map[string]string{
|
||||
"nginx.ingress.kubernetes.io/canary": "true",
|
||||
"nginx.ingress.kubernetes.io/canary-by-header": "CanaryByHeader2",
|
||||
}
|
||||
|
||||
modIng := framework.NewSingleIngress(canaryIngName, "/", host,
|
||||
f.Namespace, canaryService, 80, newAnnotations)
|
||||
|
||||
f.UpdateIngress(modIng)
|
||||
|
||||
f.WaitForNginxServer(host,
|
||||
func(server string) bool {
|
||||
return strings.Contains(server, "server_name foo")
|
||||
})
|
||||
assert.Nil(ginkgo.GinkgoT(), err)
|
||||
|
||||
ginkgo.By("routing requests destined for the mainline ingress to the mainline upstream")
|
||||
f.HTTPTestClient().
|
||||
|
|
@ -707,6 +715,11 @@ var _ = framework.DescribeAnnotation("canary-*", func() {
|
|||
f.Namespace, canaryService, 80, canaryAnnotations)
|
||||
f.EnsureIngress(canaryIng)
|
||||
|
||||
f.WaitForNginxServer(host,
|
||||
func(server string) bool {
|
||||
return strings.Contains(server, "server_name foo")
|
||||
})
|
||||
|
||||
ginkgo.By("returning requests from the mainline only when weight is equal to 0")
|
||||
f.HTTPTestClient().
|
||||
GET("/").
|
||||
|
|
@ -719,15 +732,20 @@ var _ = framework.DescribeAnnotation("canary-*", func() {
|
|||
|
||||
ginkgo.By("returning requests from the canary only when weight is equal to 100")
|
||||
|
||||
err := framework.UpdateIngress(f.KubeClientSet, f.Namespace, canaryIngName,
|
||||
func(ingress *networking.Ingress) error {
|
||||
ingress.ObjectMeta.Annotations = map[string]string{
|
||||
"nginx.ingress.kubernetes.io/canary": "true",
|
||||
"nginx.ingress.kubernetes.io/canary-weight": "100",
|
||||
}
|
||||
return nil
|
||||
newAnnotations := map[string]string{
|
||||
"nginx.ingress.kubernetes.io/canary": "true",
|
||||
"nginx.ingress.kubernetes.io/canary-weight": "100",
|
||||
}
|
||||
|
||||
modIng := framework.NewSingleIngress(canaryIngName, "/", host,
|
||||
f.Namespace, canaryService, 80, newAnnotations)
|
||||
|
||||
f.UpdateIngress(modIng)
|
||||
|
||||
f.WaitForNginxServer(host,
|
||||
func(server string) bool {
|
||||
return strings.Contains(server, "server_name foo")
|
||||
})
|
||||
assert.Nil(ginkgo.GinkgoT(), err)
|
||||
|
||||
f.HTTPTestClient().
|
||||
GET("/").
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue