diff --git a/test/e2e-image/namespace-overlays/custom-health-check-path/deployment-patch.yaml b/test/e2e-image/namespace-overlays/custom-health-check-path/deployment-patch.yaml new file mode 100644 index 000000000..79df7fdb4 --- /dev/null +++ b/test/e2e-image/namespace-overlays/custom-health-check-path/deployment-patch.yaml @@ -0,0 +1,18 @@ +- op: replace + path: /spec/template/spec/containers/0/livenessProbe/httpGet/path + value: /not-healthz +- op: replace + path: /spec/template/spec/containers/0/livenessProbe/httpGet/port + value: 9090 +- op: replace + path: /spec/template/spec/containers/0/readinessProbe/httpGet/path + value: /not-healthz +- op: replace + path: /spec/template/spec/containers/0/readinessProbe/httpGet/port + value: 9090 +- op: add + path: /spec/template/spec/containers/0/args/- + value: --health-check-path=/not-healthz +- op: add + path: /spec/template/spec/containers/0/args/- + value: --healthz-port=9090 diff --git a/test/e2e-image/namespace-overlays/custom-health-check-path/kustomization.yaml b/test/e2e-image/namespace-overlays/custom-health-check-path/kustomization.yaml new file mode 100644 index 000000000..afc13557d --- /dev/null +++ b/test/e2e-image/namespace-overlays/custom-health-check-path/kustomization.yaml @@ -0,0 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +patchesJson6902: + - target: + group: apps + version: v1 + kind: Deployment + name: nginx-ingress-controller + path: deployment-patch.yaml +bases: +- ../../overlay diff --git a/test/e2e/settings/customize_health_check_path.go b/test/e2e/settings/customize_health_check_path.go new file mode 100644 index 000000000..1d787200b --- /dev/null +++ b/test/e2e/settings/customize_health_check_path.go @@ -0,0 +1,46 @@ +/* +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 settings + +import ( + "strings" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/ingress-nginx/test/e2e/framework" +) + +var _ = framework.IngressNginxDescribe("Customize health check path", func() { + f := framework.NewDefaultFramework("custom-health-check-path") + + Context("with a plain HTTP ingress", func() { + It("should return HTTP/1.1 200 OK on custom health check path and port", func() { + + f.WaitForNginxConfiguration(func(server string) bool { + return strings.Contains(server, "location /not-healthz") + }) + + err := framework.WaitForPodsReady(f.KubeClientSet, framework.DefaultTimeout, 1, f.Namespace, metav1.ListOptions{ + LabelSelector: "app.kubernetes.io/name=ingress-nginx", + }) + + Expect(err).NotTo(HaveOccurred()) + }) + }) +})