Repository: knative/serving
Pull request #10969 (2021-03-18 02:31:17)

[Automated] Update actions
Produced via:
```shell
# meta: knative/.github
# main: knative/serving
cp $(find "${GITHUB_WORKSPACE}/meta/workflow-templates" -type f -name '*.yaml') \
  "${GITHUB_WORKSPACE}/main/.github/workflows/"
```
Cron. -knative-prow-robot
/cc knative/serving-writers
/assign knative/serving-writers

knative-prow-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by:
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **evankanderson** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @evankanderson` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative%2Fserving).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/knative/serving/blob/main/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["evankanderson"]} -->
codecov[bot]: # [Codecov](https://codecov.io/gh/knative/serving/pull/10969?src=pr&el=h1) Report
> Merging [#10969](https://codecov.io/gh/knative/serving/pull/10969?src=pr&el=desc) (2252b08) into [main](https://codecov.io/gh/knative/serving/commit/df6c235be38229b2694d7c313b34bea386f67fc0?el=desc) (df6c235) will **not change** coverage.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/knative/serving/pull/10969/graphs/tree.svg?width=650&height=150&src=pr&token=MPpDfAj4Ui)](https://codecov.io/gh/knative/serving/pull/10969?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##             main   #10969   +/-   ##
=======================================
  Coverage   88.00%   88.00%           
=======================================
  Files         188      188           
  Lines        9104     9104           
=======================================
  Hits         8012     8012           
  Misses        836      836           
  Partials      256      256           
```



------

[Continue to review full report at Codecov](https://codecov.io/gh/knative/serving/pull/10969?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/knative/serving/pull/10969?src=pr&el=footer). Last update [df6c235...2252b08](https://codecov.io/gh/knative/serving/pull/10969?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

knative-prow-robot: @knative-automation: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
pull-knative-serving-istio-stable-no-mesh | 2252b08d24041ab7c456db6ae8cc2dec45f2e499 | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative_serving/10969/pull-knative-serving-istio-stable-no-mesh/1372375045422190592) | `/test pull-knative-serving-istio-stable-no-mesh`

[Full PR test history](https://gubernator.knative.dev/pr/knative_serving/10969). [Your PR dashboard](https://gubernator.knative.dev/pr/knative-automation).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
vagababov: /lgtm
/approve
/retest
knative-prow-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative/serving/pull/10969#issuecomment-801626183" title="Approved">vagababov</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative%2Fserving).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/knative/serving/blob/main/OWNERS)~~ [vagababov]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->

Patch:
diff --git a/.github/workflows/knative-security.yaml b/.github/workflows/knative-security.yaml
index 00fa9fccf..fbfe531d9 100644
--- a/.github/workflows/knative-security.yaml
+++ b/.github/workflows/knative-security.yaml
@@ -37,11 +37,6 @@ jobs:
         # a pull request then we can checkout the head.
         fetch-depth: 2
 
-    # If this run was triggered by a pull request event, then checkout
-    # the head of the pull request instead of the merge commit.
-    - run: git checkout HEAD^2
-      if: ${{ github.event_name == 'pull_request' }}
-
     # Initializes the CodeQL tools for scanning.
     - name: Initialize CodeQL
       uses: github/codeql-action/init@v1
diff --git a/.github/workflows/knative-style.yaml b/.github/workflows/knative-style.yaml
index 877f48501..c5770a4b0 100644
--- a/.github/workflows/knative-style.yaml
+++ b/.github/workflows/knative-style.yaml
@@ -147,7 +147,7 @@ jobs:
           git check-attr --stdin linguist-generated | grep -Ev ': (set|true)$' | cut -d: -f1 |
           git check-attr --stdin linguist-vendored | grep -Ev ': (set|true)$' | cut -d: -f1 |
           grep -Ev '^(vendor/|third_party/|.git)' |
-          xargs misspell -error |
+          xargs misspell -i importas -error |
           reviewdog -efm="%f:%l:%c: %m" \
                 -name="github.com/client9/misspell" \
                 -reporter="github-pr-check" \
diff --git a/go.mod b/go.mod
index b22cccc99..cf666aea2 100644
--- a/go.mod
+++ b/go.mod
@@ -53,8 +53,8 @@ require (
 	k8s.io/kube-openapi v0.0.0-20210113233702-8566a335510f
 	k8s.io/utils v0.0.0-20210111153108-fddb29f9d009 // indirect
 	knative.dev/caching v0.0.0-20210315185901-a31ce171642b
-	knative.dev/hack v0.0.0-20210309141825-9b73a256fd9a
-	knative.dev/networking v0.0.0-20210311190926-430a689490e6
+	knative.dev/hack v0.0.0-20210317214554-58edbdc42966
+	knative.dev/networking v0.0.0-20210316192342-33105c61ff74
 	knative.dev/pkg v0.0.0-20210315160101-6a33a1ab29ac
 	sigs.k8s.io/yaml v1.2.0
 )
diff --git a/go.sum b/go.sum
index bbc074383..8e82096f7 100644
--- a/go.sum
+++ b/go.sum
@@ -768,8 +768,6 @@ go.opencensus.io v0.22.4-0.20200608061201-1901b56b9515/go.mod h1:yxeiOL68Rb0Xd1d
 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0=
 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
-go.opencensus.io v0.22.6 h1:BdkrbWrzDlV9dnbzoP7sfN+dHheJ4J9JOaYxcUDL+ok=
-go.opencensus.io v0.22.6/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
 go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
@@ -1178,8 +1176,6 @@ google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
 google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8=
-google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/grpc v1.36.0 h1:o1bcQ6imQMIOpdrO3SWf2z5RV72WbDwdXuK0MDlc8As=
 google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -1294,10 +1290,10 @@ knative.dev/caching v0.0.0-20210315185901-a31ce171642b h1:E6uZ2Xih+NBmuibPuO7r+9
 knative.dev/caching v0.0.0-20210315185901-a31ce171642b/go.mod h1:JExFIO3iGOray3B4woPTLpzt8GKYevG9WYh0FSRNFLA=
 knative.dev/hack v0.0.0-20210309141825-9b73a256fd9a h1:0UGKyvFzY1Czu0lP9+0IrJhwtKe2oNLI2GYa7MIQ5c0=
 knative.dev/hack v0.0.0-20210309141825-9b73a256fd9a/go.mod h1:PHt8x8yX5Z9pPquBEfIj0X66f8iWkWfR0S/sarACJrI=
-knative.dev/networking v0.0.0-20210311190926-430a689490e6 h1:yuf+sPvbvjvQ2KBJrEORN/YPxuf3EIFD31z/jL4WfwU=
-knative.dev/networking v0.0.0-20210311190926-430a689490e6/go.mod h1:dBcp0JBxATXsbCKK43cA6LxTricz4Ur3dPHataW5J64=
-knative.dev/pkg v0.0.0-20210311174826-40488532be3f h1:WBgC84Ldkyvt+25osB1pfrNXH9LKoXvr3BptANZWvIE=
-knative.dev/pkg v0.0.0-20210311174826-40488532be3f/go.mod h1:pn/vClSL/iCW40TlFR91EhtmMmsyPQR2V2LavDAOOMs=
+knative.dev/hack v0.0.0-20210317214554-58edbdc42966 h1:qSnMQkq4gnhD5Hb8Mpfn7IrpkiQFhXXFPOA7uIl2lAc=
+knative.dev/hack v0.0.0-20210317214554-58edbdc42966/go.mod h1:PHt8x8yX5Z9pPquBEfIj0X66f8iWkWfR0S/sarACJrI=
+knative.dev/networking v0.0.0-20210316192342-33105c61ff74 h1:6Ixdq/laiSkhpq46yba2R/sQXiFoBe5Hhj8oVGx2I/c=
+knative.dev/networking v0.0.0-20210316192342-33105c61ff74/go.mod h1:+sMDbs4w95CF/3sIXaOpHdLpdtEuhWmy/qfybQDt2ZA=
 knative.dev/pkg v0.0.0-20210315160101-6a33a1ab29ac h1:aGbaOcyNqxnvvujRtSMfkwehPER3TTsAw5mgCVqYZ08=
 knative.dev/pkg v0.0.0-20210315160101-6a33a1ab29ac/go.mod h1:7swdJzGy7U6iq8538vt2yFsZJqmnSAxMFexWK9Ktyes=
 modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
diff --git a/pkg/reconciler/route/resources/ingress.go b/pkg/reconciler/route/resources/ingress.go
index ae82e4856..532a4a19f 100644
--- a/pkg/reconciler/route/resources/ingress.go
+++ b/pkg/reconciler/route/resources/ingress.go
@@ -193,9 +193,22 @@ func makeIngressSpec(
 		}
 	}
 
+	var httpOption netv1alpha1.HTTPOption
+
+	switch config.FromContext(ctx).Network.HTTPProtocol {
+	case network.HTTPEnabled:
+		httpOption = netv1alpha1.HTTPOptionEnabled
+	case network.HTTPRedirected:
+		httpOption = netv1alpha1.HTTPOptionRedirected
+	// This will be deprecated soon
+	case network.HTTPDisabled:
+		httpOption = ""
+	}
+
 	return netv1alpha1.IngressSpec{
-		Rules: rules,
-		TLS:   tls,
+		Rules:      rules,
+		TLS:        tls,
+		HTTPOption: httpOption,
 	}, nil
 }
 
diff --git a/pkg/reconciler/route/route.go b/pkg/reconciler/route/route.go
index b0aefd33e..e5d5ce919 100644
--- a/pkg/reconciler/route/route.go
+++ b/pkg/reconciler/route/route.go
@@ -148,7 +148,6 @@ func (c *Reconciler) ReconcileKind(ctx context.Context, r *v1.Route) pkgreconcil
 	if err != nil {
 		return err
 	}
-
 	// Reconcile ingress and its children resources.
 	ingress, effectiveRO, err := c.reconcileIngress(ctx, r, traffic, tls, ingressClassForRoute(ctx, r), acmeChallenges...)
 	if err != nil {
diff --git a/support/COMMUNITY_CONTACTS.md b/support/COMMUNITY_CONTACTS.md
index 792178122..c071c3bf4 100644
--- a/support/COMMUNITY_CONTACTS.md
+++ b/support/COMMUNITY_CONTACTS.md
@@ -36,7 +36,8 @@ community contact's duty (subject to change) is as followed:
   mailing list and `@serving-help` on Slack for unanswered questions.
 - [Triage issues in the serving repo](./TRIAGE.md). Quick links:
   - [Untriaged issues](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+-label%3Atriage%2Faccepted+-label%3Atriage%2Fneeds-user-input)
-  - [User feedback issues updated more than 3 days ago](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+label%3Atriage%2Fneeds-user-input+updated%3A%3C%3D2021-03-13) -- **YOU NEED TO UPDATE THE DATE IN THE QUERY**
+  - [User feedback issues updated more than 3 days ago](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+label%3Atriage%2Fneeds-user-input+updated%3A%3C%3D2021-03-13)
+    -- **YOU NEED TO UPDATE THE DATE IN THE QUERY**
 - Check Docs
   [unassigned issues / untriaged issues](https://github.com/knative/docs/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fserving+label%3Atriage%2Fneeds-eng-input)
   for unanswered questions.
@@ -68,6 +69,7 @@ rotation, feel free to send a PR to remove yourself.
 # Schedule
 
 See [a machine-readable schedule here](schedule.rotation). The format is:
+
 ```
 # comment lines are okay
 #@ metadata: value of the metadata
diff --git a/support/TRIAGE.md b/support/TRIAGE.md
index 69766c163..b7372ad6e 100644
--- a/support/TRIAGE.md
+++ b/support/TRIAGE.md
@@ -1,28 +1,54 @@
 # Triage process
 
-This is heavily inspired by [this blog post](https://apenwarr.ca/log/20171213), but that's a long read, so here's the short version.
+This is heavily inspired by [this blog post](https://apenwarr.ca/log/20171213),
+but that's a long read, so here's the short version.
 
 The goal of triage is to make sure that the following are handled quickly:
 
-* New bugs or issues, some of which might be high priority
-* Consumer (developer or administrator) updates to an issue which might not be on the immediate radar of a contributor
+- New bugs or issues, some of which might be high priority
+- Consumer (developer or administrator) updates to an issue which might not be
+  on the immediate radar of a contributor
 
-The goal is for the project to be responsive to outside requests, while shielding most of the team from the interrupt-y work of watching the triage queue. An additional goal is to protect and respect the time of the triager / support user.
+The goal is for the project to be responsive to outside requests, while
+shielding most of the team from the interrupt-y work of watching the triage
+queue. An additional goal is to protect and respect the time of the triager /
+support user.
 
-For triage, the goal is to handle _all_ the bugs on the following lists (searches):
+For triage, the goal is to handle _all_ the bugs on the following lists
+(searches):
 
-* [Untriaged issues](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+-label%3Atriage%2Faccepted+-label%3Atriage%2Fneeds-user-input)
-* [User feedback issues updated more than 3 days ago](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+label%3Atriage%2Fneeds-user-input+updated%3A%3C%3D2021-03-13) -- **YOU NEED TO UPDATE THE DATE IN THE QUERY**
+- [Untriaged issues](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+-label%3Atriage%2Faccepted+-label%3Atriage%2Fneeds-user-input)
+- [User feedback issues updated more than 3 days ago](https://github.com/knative/serving/issues?q=is%3Aissue+is%3Aopen+label%3Atriage%2Fneeds-user-input+updated%3A%3C%3D2021-03-13)
+  -- **YOU NEED TO UPDATE THE DATE IN THE QUERY**
 
-When doing triage, the goal is to quickly process issues, getting them into the right "bin". For small issues and user questions, it's reasonable to reply in the issue with documentation or a reference to another issue, but you should avoid *fixing* anything when triaging -- if you're making PRs during triage, you're doing it wrong.
+When doing triage, the goal is to quickly process issues, getting them into the
+right "bin". For small issues and user questions, it's reasonable to reply in
+the issue with documentation or a reference to another issue, but you should
+avoid _fixing_ anything when triaging -- if you're making PRs during triage,
+you're doing it wrong.
 
 At the end of reading an issue, you should do one of the following:
 
-1. If the issue is clear and applies to serving, ensure it has the correct `/kind` and `/area` assigned. If you know enough, feel free to `/assign` to an individual, but area assignments should be sufficient for triage. Also consider if it is a `/good-first-issue`. After this, also mark the issue as `/triage accepted`, so it drops out of the list above.
-
-1. Move it to the correct repo (for example, Istio-specific questions should probably go to `net-istio`). In some cases, you may need to create a new issue in the new repo and link / copy the current issue. If you do this, be sure to `@mention` the requestor and others on the old issue, and then `/close` the issue is serving with a link to the other repo.
-
-1. If it's not clear what the problem or issue is, add a note for the requestor (or occasionally some other user on the thread), make sure that there is a reasonable `/kind` on the issue and mark it as `/triage needs-user-input` so that it's off the list for a few days. If a `needs-user-input` issue persists for longer than a week or so (past a second followup), it's reasonable to `/close` the issue and encourage the requester to reopen if they have more detail.
-
-1. If the request can be resolved with documentation, is infeasable, or complete, follow up directly in the issue with the information, and `/close` the issue.
-
+1. If the issue is clear and applies to serving, ensure it has the correct
+   `/kind` and `/area` assigned. If you know enough, feel free to `/assign` to
+   an individual, but area assignments should be sufficient for triage. Also
+   consider if it is a `/good-first-issue`. After this, also mark the issue as
+   `/triage accepted`, so it drops out of the list above.
+
+1. Move it to the correct repo (for example, Istio-specific questions should
+   probably go to `net-istio`). In some cases, you may need to create a new
+   issue in the new repo and link / copy the current issue. If you do this, be
+   sure to `@mention` the requestor and others on the old issue, and then
+   `/close` the issue is serving with a link to the other repo.
+
+1. If it's not clear what the problem or issue is, add a note for the requestor
+   (or occasionally some other user on the thread), make sure that there is a
+   reasonable `/kind` on the issue and mark it as `/triage needs-user-input` so
+   that it's off the list for a few days. If a `needs-user-input` issue persists
+   for longer than a week or so (past a second followup), it's reasonable to
+   `/close` the issue and encourage the requester to reopen if they have more
+   detail.
+
+1. If the request can be resolved with documentation, is infeasable, or
+   complete, follow up directly in the issue with the information, and `/close`
+   the issue.
diff --git a/vendor/knative.dev/hack/library.sh b/vendor/knative.dev/hack/library.sh
index f8f8b629c..d72bfe6b7 100644
--- a/vendor/knative.dev/hack/library.sh
+++ b/vendor/knative.dev/hack/library.sh
@@ -163,7 +163,7 @@ function wait_until_pods_running() {
   for i in {1..150}; do  # timeout after 5 minutes
     # List all pods. Ignore Terminating pods as those have either been replaced through
     # a deployment or terminated on purpose (through chaosduck for example).
-    local pods="$(kubectl get pods --no-headers -n $1 2>/dev/null | grep -v Terminating)"
+    local pods="$(kubectl get pods --no-headers -n $1 | grep -v Terminating)"
     # All pods must be running (ignore ImagePull error to allow the pod to retry)
     local not_running_pods=$(echo "${pods}" | grep -v Running | grep -v Completed | grep -v ErrImagePull | grep -v ImagePullBackOff)
     if [[ -n "${pods}" ]] && [[ -z "${not_running_pods}" ]]; then
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 8fbb7dd68..e686947a1 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1018,11 +1018,11 @@ knative.dev/caching/pkg/client/injection/informers/caching/v1alpha1/image/fake
 knative.dev/caching/pkg/client/injection/informers/factory
 knative.dev/caching/pkg/client/injection/informers/factory/fake
 knative.dev/caching/pkg/client/listers/caching/v1alpha1
-# knative.dev/hack v0.0.0-20210309141825-9b73a256fd9a
+# knative.dev/hack v0.0.0-20210317214554-58edbdc42966
 ## explicit
 knative.dev/hack
 knative.dev/hack/shell
-# knative.dev/networking v0.0.0-20210311190926-430a689490e6
+# knative.dev/networking v0.0.0-20210316192342-33105c61ff74
 ## explicit
 knative.dev/networking/config
 knative.dev/networking/pkg


Test patch:
diff --git a/pkg/reconciler/route/route_test.go b/pkg/reconciler/route/route_test.go
index aea375ad4..d86e7d966 100644
--- a/pkg/reconciler/route/route_test.go
+++ b/pkg/reconciler/route/route_test.go
@@ -213,7 +213,8 @@ func TestCreateRouteForOneReserveRevision(t *testing.T) {
 
 	domain := strings.Join([]string{route.Name, route.Namespace, defaultDomainSuffix}, ".")
 	expectedSpec := v1alpha1.IngressSpec{
-		TLS: []v1alpha1.IngressTLS{},
+		HTTPOption: v1alpha1.HTTPOptionEnabled,
+		TLS:        []v1alpha1.IngressTLS{},
 		Rules: []v1alpha1.IngressRule{{
 			Hosts: []string{
 				"test-route.test",
@@ -342,7 +343,8 @@ func TestCreateRouteWithMultipleTargets(t *testing.T) {
 	ci := getRouteIngressFromClient(ctx, t, route)
 	domain := strings.Join([]string{route.Name, route.Namespace, defaultDomainSuffix}, ".")
 	expectedSpec := v1alpha1.IngressSpec{
-		TLS: []v1alpha1.IngressTLS{},
+		HTTPOption: v1alpha1.HTTPOptionEnabled,
+		TLS:        []v1alpha1.IngressTLS{},
 		Rules: []v1alpha1.IngressRule{{
 			Hosts: []string{
 				"test-route.test",
@@ -459,7 +461,8 @@ func TestCreateRouteWithOneTargetReserve(t *testing.T) {
 	ci := getRouteIngressFromClient(ctx, t, route)
 	domain := strings.Join([]string{route.Name, route.Namespace, defaultDomainSuffix}, ".")
 	expectedSpec := v1alpha1.IngressSpec{
-		TLS: []v1alpha1.IngressTLS{},
+		HTTPOption: v1alpha1.HTTPOptionEnabled,
+		TLS:        []v1alpha1.IngressTLS{},
 		Rules: []v1alpha1.IngressRule{{
 			Hosts: []string{
 				"test-route.test",
@@ -590,7 +593,8 @@ func TestCreateRouteWithDuplicateTargets(t *testing.T) {
 	ci := getRouteIngressFromClient(ctx, t, route)
 	domain := strings.Join([]string{route.Name, route.Namespace, defaultDomainSuffix}, ".")
 	expectedSpec := v1alpha1.IngressSpec{
-		TLS: []v1alpha1.IngressTLS{},
+		HTTPOption: v1alpha1.HTTPOptionEnabled,
+		TLS:        []v1alpha1.IngressTLS{},
 		Rules: []v1alpha1.IngressRule{{
 			Hosts: []string{
 				"test-route.test",
@@ -795,7 +799,8 @@ func TestCreateRouteWithNamedTargets(t *testing.T) {
 	ci := getRouteIngressFromClient(ctx, t, route)
 	domain := strings.Join([]string{route.Name, route.Namespace, defaultDomainSuffix}, ".")
 	expectedSpec := v1alpha1.IngressSpec{
-		TLS: []v1alpha1.IngressTLS{},
+		HTTPOption: v1alpha1.HTTPOptionEnabled,
+		TLS:        []v1alpha1.IngressTLS{},
 		Rules: []v1alpha1.IngressRule{{
 			Hosts: []string{
 				"test-route.test",
@@ -1003,7 +1008,8 @@ func TestCreateRouteWithNamedTargetsAndTagBasedRouting(t *testing.T) {
 	ci := getRouteIngressFromClient(ctx, t, route)
 	domain := strings.Join([]string{route.Name, route.Namespace, defaultDomainSuffix}, ".")
 	expectedSpec := v1alpha1.IngressSpec{
-		TLS: []v1alpha1.IngressTLS{},
+		HTTPOption: v1alpha1.HTTPOptionEnabled,
+		TLS:        []v1alpha1.IngressTLS{},
 		Rules: []v1alpha1.IngressRule{{
 			Hosts: []string{
 				"test-route.test",
diff --git a/pkg/reconciler/route/table_test.go b/pkg/reconciler/route/table_test.go
index 6637c273f..7d815d006 100644
--- a/pkg/reconciler/route/table_test.go
+++ b/pkg/reconciler/route/table_test.go
@@ -2553,103 +2553,6 @@ func wildcardCert(namespace string, domain string) *netv1alpha1.Certificate {
 	return cert
 }
 
-func TestReconcileEnableAutoTLSHTTPDisabled(t *testing.T) {
-	table := TableTest{{
-		Name: "check that Route is correctly updated when Certificate is not ready",
-		Objects: []runtime.Object{
-			Route("default", "becomes-ready", WithConfigTarget("config"), WithRouteUID("12-34")),
-			cfg("default", "config",
-				WithConfigGeneration(1), WithLatestCreated("config-00001"), WithLatestReady("config-00001")),
-			rev("default", "config", 1, MarkRevisionReady, WithRevName("config-00001"), WithK8sServiceName),
-			// MakeCertificates will create a certificate with DNS name "*.test-ns.example.com" which is not the host name
-			// needed by the input Route.
-			&netv1alpha1.Certificate{
-				ObjectMeta: metav1.ObjectMeta{
-					Name:      "route-12-34",
-					Namespace: "default",
-					Labels: map[string]string{
-						serving.RouteLabelKey: "becomes-ready",
-					},
-					OwnerReferences: []metav1.OwnerReference{*kmeta.NewControllerRef(
-						Route("default", "becomes-ready", WithConfigTarget("config"), WithRouteUID("12-34")))},
-					Annotations: map[string]string{
-						networking.CertificateClassAnnotationKey: network.CertManagerCertificateClassName,
-					},
-				},
-				Spec: netv1alpha1.CertificateSpec{
-					DNSNames: []string{"abc.test.example.com"},
-				},
-				Status: notReadyCertStatus(),
-			},
-		},
-		WantCreates: []runtime.Object{
-			ingressWithTLS(
-				Route("default", "becomes-ready", WithConfigTarget("config"), WithURL,
-					WithRouteUID("12-34")),
-				&traffic.Config{
-					Targets: map[string]traffic.RevisionTargets{
-						traffic.DefaultTarget: {{
-							TrafficTarget: v1.TrafficTarget{
-								LatestRevision:    ptr.Bool(true),
-								ConfigurationName: "config",
-								RevisionName:      "config-00001",
-								Percent:           ptr.Int64(100),
-							},
-						}},
-					},
-				}, nil, nil),
-			simpleK8sService(
-				Route("default", "becomes-ready", WithConfigTarget("config"), WithRouteUID("12-34")),
-				WithExternalName("becomes-ready.default.example.com"),
-			),
-		},
-		WantUpdates: []clientgotesting.UpdateActionImpl{{
-			Object: certificateWithStatus(resources.MakeCertificates(Route("default", "becomes-ready", WithConfigTarget("config"), WithURL, WithRouteUID("12-34")),
-				map[string]string{"becomes-ready.default.example.com": ""}, network.CertManagerCertificateClassName)[0], notReadyCertStatus()),
-		}},
-		WantStatusUpdates: []clientgotesting.UpdateActionImpl{{
-			Object: Route("default", "becomes-ready", WithConfigTarget("config"),
-				WithRouteUID("12-34"),
-				// Populated by reconciliation when all traffic has been assigned.
-				WithAddress, WithInitRouteConditions,
-				MarkTrafficAssigned, MarkIngressNotConfigured, WithStatusTraffic(
-					v1.TrafficTarget{
-						RevisionName:   "config-00001",
-						Percent:        ptr.Int64(100),
-						LatestRevision: ptr.Bool(true),
-					}), MarkCertificateNotReady, MarkIngressNotConfigured,
-				// The certificate is not ready. But we still want to have HTTPS URL.
-				WithHTTPSDomain),
-		}},
-		WantEvents: []string{
-			Eventf(corev1.EventTypeNormal, "Created", "Created placeholder service %q", "becomes-ready"),
-			Eventf(corev1.EventTypeNormal, "Updated", "Updated Spec for Certificate %s/%s", "default", "route-12-34"),
-			Eventf(corev1.EventTypeNormal, "Created", "Created Ingress %q", "becomes-ready"),
-		},
-		Key: "default/becomes-ready",
-	}}
-	table.Test(t, MakeFactory(func(ctx context.Context, listers *Listers, cmw configmap.Watcher) controller.Reconciler {
-		cfg := reconcilerTestConfig(true)
-		cfg.Network.HTTPProtocol = network.HTTPDisabled
-		r := &Reconciler{
-			kubeclient:          kubeclient.Get(ctx),
-			client:              servingclient.Get(ctx),
-			netclient:           networkingclient.Get(ctx),
-			configurationLister: listers.GetConfigurationLister(),
-			revisionLister:      listers.GetRevisionLister(),
-			serviceLister:       listers.GetK8sServiceLister(),
-			ingressLister:       listers.GetIngressLister(),
-			certificateLister:   listers.GetCertificateLister(),
-			tracker:             &NullTracker{},
-			clock:               clock.NewFakePassiveClock(fakeCurTime),
-		}
-
-		return routereconciler.NewReconciler(ctx, logging.FromContext(ctx), servingclient.Get(ctx),
-			listers.GetRouteLister(), controller.GetEventRecorder(ctx), r,
-			controller.Options{ConfigStore: &testConfigStore{config: cfg}})
-	}))
-}
-
 func cfg(namespace, name string, co ...ConfigOption) *v1.Configuration {
 	cfg := &v1.Configuration{
 		ObjectMeta: metav1.ObjectMeta{
diff --git a/vendor/knative.dev/hack/e2e-tests.sh b/vendor/knative.dev/hack/e2e-tests.sh
index 0b8548f66..c5906d610 100644
--- a/vendor/knative.dev/hack/e2e-tests.sh
+++ b/vendor/knative.dev/hack/e2e-tests.sh
@@ -37,12 +37,15 @@ function teardown_test_resources() {
 # Parameters: $1..$n - any go test flags, then directories containing the tests to run.
 function go_test_e2e() {
   local go_test_args=()
+  [[ ! " $*" == *" -tags="* ]] && go_test_args+=("-tags=e2e")
+  [[ ! " $*" == *" -count="* ]] && go_test_args+=("-count=1")
+  [[ ! " $*" == *" -race"* ]] && go_test_args+=("-race")
+
   # Remove empty args as `go test` will consider it as running tests for the current directory, which is not expected.
   for arg in "$@"; do
     [[ -n "$arg" ]] && go_test_args+=("$arg")
   done
-  [[ ! " $*" == *" -tags="* ]] && go_test_args+=("-tags=e2e")
-  report_go_test -race -count=1 "${go_test_args[@]}"
+  report_go_test "${go_test_args[@]}"
 }
 
 # Setup the test cluster for running the tests.
@@ -69,8 +72,8 @@ function setup_test_cluster() {
   # Acquire cluster admin role for the current user.
   acquire_cluster_admin_role "${k8s_cluster}"
 
-  # Setup KO_DOCKER_REPO if it is a GKE cluster. Incorporate an element of 
-  # randomness to ensure that each run properly publishes images. Don't 
+  # Setup KO_DOCKER_REPO if it is a GKE cluster. Incorporate an element of
+  # randomness to ensure that each run properly publishes images. Don't
   # owerwrite KO_DOCKER_REPO if already set.
   [ -z "${KO_DOCKER_REPO}" ] && \
     [[ "${k8s_cluster}" =~ ^gke_.* ]] && \
diff --git a/vendor/knative.dev/hack/presubmit-tests.sh b/vendor/knative.dev/hack/presubmit-tests.sh
index e873736be..fb50ac819 100644
--- a/vendor/knative.dev/hack/presubmit-tests.sh
+++ b/vendor/knative.dev/hack/presubmit-tests.sh
@@ -209,7 +209,7 @@ function run_unit_tests() {
 
 # Default unit test runner that runs all go tests in the repo.
 function default_unit_test_runner() {
-  report_go_test -race ./...
+  report_go_test -race -count 1 ./...
 }
 
 # Run integration tests. If there's no `integration_tests` function, run the