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

NE-1366: Revisions for set-delete-http-headers EP #1446

Closed
wants to merge 4 commits into from

Conversation

miheer
Copy link
Contributor

@miheer miheer commented Jul 27, 2023

This a followup commit for PR #1296
It adds changes related to Cookies as to why they are in the deny list. It mentions the correct override behavior when setting same headers on Ingress Controller and Route.
It also adds an alternative solution for the override behavior.

@openshift-ci openshift-ci bot requested review from frobware and Miciah July 27, 2023 11:49
@miheer miheer force-pushed the headers-followup branch 2 times, most recently from bf77874 to 3027850 Compare July 27, 2023 12:09

Please note that the setting of forwardedHeaderPolicy happens at the plain backend section of haproxy.config i.e. per route level and not at the front-end section
of the haproxy.config level as per the above-mentioned link.
The custom HTTP response value of `x-forwarded` header set using `spec.httpHeaders.actions` of the IngressController will take over the value defined in annotation `haproxy.router.openshift.io/set-forwarded-headers` of Route, `spec.httpHeaders.forwardedHeaderPolicy` of Ingress Controller
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add something more explicit, like "In contrast to request headers, in which the IngressController values override the Route spec.httpHeaders.actions values, for response headers the Route values override the IngressController values".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok added this line above the added line in the diff

Copy link
Contributor Author

@miheer miheer Aug 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i have added sequence of execution.

@@ -782,6 +765,26 @@ For this reason, the `host` header is in the deny list of headers that are prohi

Please note that a custom `host` header may be specified via RouteSpec. Please refer to `Open Questions` for more details.

### Cookie and Set-Cookie
There are three reasons we blocked `Cookie` and `Set-Cookie`:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
There are three reasons we blocked `Cookie` and `Set-Cookie`:
We do not allow setting `Cookie` or `Set-Cookie` headers, for the following three reasons:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 771 to 773
1. There were no use cases mentioned for these headers in [RFE](https://issues.redhat.com/browse/RFE-464).

2. The cookies that HAProxy sets are used for session tracking, to map a client connection to a particular
Copy link
Contributor

@candita candita Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Item 2 adds more meaning to the decision than item 1. I would swap the ordering.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 776 to 781
The cookie name is an MD5 hash value derived from the backend's name (similarly, the cookie value is a hashed value
derived from the backend server's endpoint).

So the cookie names that we would want to forbid are all the possible values
of the MD5 hashing algorithm, but it's extremely unlikely that someone would accidentally choose the same cookie name
that HAProxy used.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These lines don't add any meaning to the discussion.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but we need to explain what the interference may be right ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your comment makes it look like the whole thing is "extremely unlikely" to happen, so I don't think this is the interference we're concerned with.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes removed

Comment on lines 783 to 784
However, if there is an interference caused by setting these then either the HAProxy's session affinity might not work correctly,
or HAProxy might overwrite the cookie.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
However, if there is an interference caused by setting these then either the HAProxy's session affinity might not work correctly,
or HAProxy might overwrite the cookie.
We don't want to risk interfering with HAProxy's session affinity, nor restrict HAProxy's ownership of a cookie.

Copy link
Contributor Author

@miheer miheer Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or HAProxy might overwrite the cookie. sounds more better than HAProxy's ownership of a cookie.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nor restrict--we can say nor affect as well ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you suggest? I wanted to clarify what an "interference" is, as this is not a generally used tech term.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't want to risk interfering with HAProxy's session affinity, nor restrict HAProxy's ownership of a cookie. -- added this

However, if there is an interference caused by setting these then either the HAProxy's session affinity might not work correctly,
or HAProxy might overwrite the cookie.

3. It was thought that it would be better to have a structured API for it.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. It was thought that it would be better to have a structured API for it.
3. A better solution for cookie headers is a new structured API feature.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

than the ones admin has set cluster-wide.
2. The IngressController and Route might be owned by the same person who wants to specify some global configuration
and then override that global configuration on a small subset of routes.
Answer: In case of HTTP response headers, the headers set in spec.httpHeaders.actions of IngressController will override
Copy link
Contributor

@candita candita Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the title of this section, I would clarify it by stating: "How do Route headers interact with IngressController headers of the same value?"

Answer: It depends if they are response headers or request headers. In case of HTTP response headers, the headers set in spec.httpHeaders.actions of IngressController will override

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

In case of HTTP request headers, the headers set in Route using spec.httpHeaders.actions or annotation will override the
headers with the same name present in the IngressController's spec.httpHeaders.actions.

This is because of the way Haproxy is designed to work. We cannot change the processing order; we're constrained by HAProxy's design:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: use the same capitalization for HAProxy throughout.

Suggested change
This is because of the way Haproxy is designed to work. We cannot change the processing order; we're constrained by HAProxy's design:
This is because of the way HAProxy is designed to work. We cannot change the processing order; we're constrained by HAProxy's design:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

response from the backend.

In case of HTTP response, Haproxy overrides the header value of the same header name in the backend with
the value of the header defined in the frontend. So, [the backend rules are applied first, followed by the frontend's rules.](https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.2-http-response)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: update the url to point to 2.6 documentation, not 1.7

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

However, in case of the HTTP request, haproxy overrides the values of the header value of the same header name present in the frontend with the value of the
header defined in backend. [The rules are evaluated in their declaration order when they are met in a frontend,
listen or backend section.](https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.2-http-request)
So, the `http-request set or delete` stanzas are applied and interpreted this way by the haproxy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add an example of how to explicitly set the headers for a desired result, both for request and response. I assume this means that they have to set request headers on Route and corresponding response headers on IC if they want predictability in the entire transaction.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

predictability can happen only if cluster admin shares what response he is setting on ingress-controller

Copy link
Contributor Author

@miheer miheer Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

they have to set request headers on Route and corresponding response headers ---
You can't set response header in http-request stanzas and vice-versa. haproxy does not allow that.
For example you can't set response header X-Frame-Options in request list as
it will get added in http-request stanza which is not allowed by haproxy.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that what you were testing recently?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes.....I take my words back.

However, in case of the HTTP request, haproxy overrides the values of the header value of the same header name present in the frontend with the value of the
header defined in backend. [The rules are evaluated in their declaration order when they are met in a frontend,
listen or backend section.](https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4.2-http-request)
So, the `http-request set or delete` stanzas are applied and interpreted this way by the haproxy.

#### Does a custom header value defined in RouteSpec override the route annotation ?
Answer: Yes. A value defined in RouteSpec overrides the route annotation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i would add: except for response headers, where the IngressControllerSpec overrides both.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

gets the response from the backend.

So, the override behavior happens the way mentioned in the question `Why does a custom header value defined in RouteSpec override IngressControllerSpec value ?`
under section `Open Questions` where HTTP Response headers defined in the IngressController are overridden by headers
Copy link
Contributor

@candita candita Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this the behavior for request headers?

Suggested change
under section `Open Questions` where HTTP Response headers defined in the IngressController are overridden by headers
under section `Open Questions` where HTTP request headers defined in the IngressController are overridden by headers

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

However, if we want the same behavior of override for HTTP response headers as that of HTTP request headers then we will have
to inject the set-header from the IngressController config into every backend and not the frontend.

The downside is that it would grow the generated haproxy.config significantly.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you be more explicit? Would it grow it by one line per backend or would it grow it by one line per affected backend?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check line 1167 below

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it is there in ### Proposed Alternative Solution for overriding the HTTP response headers defined in the IngressController by the Route


It would give us better control over the ordering.

It would eliminate the issue with the host header. So, we could allow it to be set via IngressController.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain a little why it eliminates the issue?

Suggested change
It would eliminate the issue with the host header. So, we could allow it to be set via IngressController.
Because it prevents _____, we could allow the host header to be set via IngressController.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated.

Comment on lines 1160 to 1188
The reason for this proposal was that it's quite common to have a global setting with an escape hatch locally to
override the global setting.
The purpose of this EP is to define custom headers. So, there are two reasons we need such override:
1. A route owner shall have the choice to define what headers he wants as per his application requirements(as they might be varying)
than the ones admin has set cluster-wide.
2. The IngressController and Route might be owned by the same person who wants to specify some global configuration
and then override that global configuration on a small subset of routes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't belong here, it doesn't add to the meaning.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it does not exist now.

Comment on lines -1006 to -1010
The purpose of this EP is to define custom headers. So, there are two reasons we need such override:
1. A route owner shall have the choice to define what headers he wants as per his application requirements(as they might be varying)
than the ones admin has set cluster-wide.
2. The IngressController and Route might be owned by the same person who wants to specify some global configuration
and then override that global configuration on a small subset of routes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would keep this section in here, not move it to the Alternatives section.

Copy link
Contributor Author

@miheer miheer Jul 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this comes under upside of route overriding IC

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think we will need to remove this as we no-longer use this over-ride behavior where route over-rides ingresscontroller in all cases.

Comment on lines 738 to 743
For example: If someone creates an Ingress Controller with the following:
```sh
apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
name: default
namespace: openshift-ingress-operator
spec:
httpHeaders:
forwardedHeaderPolicy: Replace
```
Or if someone add a route annotation `haproxy.router.openshift.io/set-forwarded-headers`,
then the `set-header` stanzas will be added in `haproxy.config` using the [haproxy-config.template](https://github.com/openshift/router/blob/0cd9a58dff77127562f7851ccfa5cda79b8cef48/images/router/haproxy/conf/haproxy-config.template#L565-L580)
In contrast to request headers, in which the IngressController values override the Route spec.httpHeaders.actions values,
for response headers the Route values override the IngressController values.

However, if someone wants to set custom values for these then they need to use the API of this EP.

The custom values set using `spec.httpHeaders.actions` will take over the value defined in annotation `haproxy.router.openshift.io/set-forwarded-headers` or `spec.httpHeaders.forwardedHeaderPolicy`.

Please note that the setting of forwardedHeaderPolicy happens at the plain backend section of haproxy.config i.e. per route level and not at the front-end section
of the haproxy.config level as per the above-mentioned link.
The custom HTTP response value of `x-forwarded` header set using `spec.httpHeaders.actions` of the IngressController will take over the value defined in annotation `haproxy.router.openshift.io/set-forwarded-headers` of Route, `spec.httpHeaders.forwardedHeaderPolicy` of Ingress Controller
or `spec.httpHeaders.actions` of Route as in case of HTTP response headers, HAProxy overrides the value of the backend of same header name which
was present in the frontend section.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without this enhancement, does HAProxy ever set x-forwarded-* in response headers? The x-forwarded-* headers are request headers; given that, none of what you wrote makes any sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok. i tried to update this.

@@ -791,6 +789,7 @@ The following table summarizes which headers are allowed to be customized via th
| `strict-transport-security` | No | No | `haproxy.router.openshift.io/hsts_header` Route annotation |
| `x-forwarded-for` | Yes | Yes | `haproxy.router.openshift.io/set-forwarded-headers` Route annotation or IngressController `spec.httpHeaders.forwardedHeaderPolicy` API field |
| `x-ssl` | Yes | Yes | No |
| `cookie` or `set-cookie` | No | No | No |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do have the haproxy.router.openshift.io/disable_cookies and router.openshift.io/cookie_name route annotations that you could list in this table.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 1006 to 1007
In case of HTTP response headers, the headers set in spec.httpHeaders.actions of IngressController will override
the headers with same name in Route's spec.httpHeaders.actions or Route annotation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is more precise to describe the order in which actions are executed. Also, change "In case" to "In the case".

Suggested change
In case of HTTP response headers, the headers set in spec.httpHeaders.actions of IngressController will override
the headers with same name in Route's spec.httpHeaders.actions or Route annotation.
In case of HTTP response headers, the actions specified in `spec.httpHeaders.actions` on the IngressController will be executed after
the actions specified in the Route's `spec.httpHeaders.actions` field.

Please remember to use backticks when referencing API fields.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree - please describe the order in which the actions are executed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 1009 to 1010
In case of HTTP request headers, the headers set in Route using spec.httpHeaders.actions or annotation will override the
headers with the same name present in the IngressController's spec.httpHeaders.actions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In case of HTTP request headers, the headers set in Route using spec.httpHeaders.actions or annotation will override the
headers with the same name present in the IngressController's spec.httpHeaders.actions.
In the case of HTTP request headers, the actions specified in `spec.httpHeaders.actions` on the Route will be executed after
the actions specified in the IngressController's `spec.httpHeaders.actions` field.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 1015 to 1017

In case of HTTP response, HAProxy overrides the header value of the same header name in the backend with
the value of the header defined in the frontend. So, [the backend rules are applied first, followed by the frontend's rules.](https://cbonte.github.io/haproxy-dconv/2.6/configuration.html#4.2-http-response)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current phrasing seems confusingly repetitive.

Suggested change
In case of HTTP response, HAProxy overrides the header value of the same header name in the backend with
the value of the header defined in the frontend. So, [the backend rules are applied first, followed by the frontend's rules.](https://cbonte.github.io/haproxy-dconv/2.6/configuration.html#4.2-http-response)
This means that for requests, the frontend's rules are applied first, followed by the backend's,
and conversely, for responses, [the backend's rules are applied first, followed by the frontend's](https://cbonte.github.io/haproxy-dconv/2.6/configuration.html#4.2-http-response).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

In case of HTTP response, HAProxy overrides the header value of the same header name in the backend with
the value of the header defined in the frontend. So, [the backend rules are applied first, followed by the frontend's rules.](https://cbonte.github.io/haproxy-dconv/2.6/configuration.html#4.2-http-response)
The `http-response set or delete` stanzas are applied and interpreted in this way by the HAProxy.
For example: A cluster admin wants to `DENY` response header `X-Frame-Options`. However, a route owner sets `X-Frame-Options` to `'SAMEORIGIN'` then the haproxy.config will look like the following where
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current phrasing seems to suggest that the cluster-admin can deny the router owner from setting a header.

Suggested change
For example: A cluster admin wants to `DENY` response header `X-Frame-Options`. However, a route owner sets `X-Frame-Options` to `'SAMEORIGIN'` then the haproxy.config will look like the following where
For example: A cluster admin sets a response header with the name `X-Frame-Options` and the value `DENY` using the IngressController API. However, a route owner sets the `X-Frame-Options` header with the value `SAMEORIGIN`. In this scenario, `haproxy.config` will look like the following where

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 1036 to 1037
header defined in backend. [The rules are evaluated in their declaration order when they are met in a frontend,
listen or backend section.](https://cbonte.github.io/haproxy-dconv/2.6/configuration.html#4.2-http-request)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is this statement relevant here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tried to give more information. However I removed this and added a link of http-request -
This means that for requests, the frontend's rules are applied first, followed by the backend's,
and conversely
,

Comment on lines 1169 to 1171
There might be a case, where admin wants to set a response header for all connections to the IngressController as per company policy which he won't be able to do so
using this approach.
For Example: A cluster admin wants to deny X-Frame-Options for all routes the ingress controller is handling.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a critical advantage to the current design.

Suggested change
There might be a case, where admin wants to set a response header for all connections to the IngressController as per company policy which he won't be able to do so
using this approach.
For Example: A cluster admin wants to deny X-Frame-Options for all routes the ingress controller is handling.
There might be a case, where admin wants to set a response header for all connections to the IngressController as per company policy which he won't be able to do so
using this approach.
For Example: A cluster admin wants to set the `X-Frame-Options` header with the value `DENY` for all routes the ingress controller is handling, overwriting any existing `X-Frame-Options` header that may have been set by the application or Route configuration.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 1173 to 1175
The upside is:

It would give us better control over the ordering.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upside of what? What would? Give whom control? Don't force the reader to guess.

Suggested change
The upside is:
It would give us better control over the ordering.
The upside of putting all the header configuration on the backends is that
it would give OpenShift router full control over the ordering of header actions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry. thanks for the improvement!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Contributor

openshift-ci bot commented Jan 11, 2024

@openshift-bot: Closed this PR.

In response to this:

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@miheer
Copy link
Contributor Author

miheer commented Jan 18, 2024

/reopen

@openshift-ci openshift-ci bot reopened this Jan 18, 2024
Copy link
Contributor

openshift-ci bot commented Jan 18, 2024

@miheer: Reopened this PR.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Jan 18, 2024

@miheer: This pull request references NE-1366 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.16.0" version, but no target version was set.

In response to this:

This a followup commit for PR #1296
It adds changes related to Cookies as to why they are in the deny list. It mentions the correct override behavior when setting same headers on Ingress Controller and Route.
It also adds an alternative solution for the override behavior.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-bot
Copy link

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Jan 25, 2024
Copy link
Contributor

openshift-ci bot commented Jan 25, 2024

@openshift-bot: Closed this PR.

In response to this:

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

@dhellmann dhellmann removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jan 26, 2024
@miheer
Copy link
Contributor Author

miheer commented Feb 4, 2024

/reopen

Copy link
Contributor

openshift-ci bot commented Feb 4, 2024

@miheer: Reopened this PR.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot reopened this Feb 4, 2024
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 4, 2024

@miheer: This pull request references NE-1366 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.16.0" version, but no target version was set.

In response to this:

This a followup commit for PR #1296
It adds changes related to Cookies as to why they are in the deny list. It mentions the correct override behavior when setting same headers on Ingress Controller and Route.
It also adds an alternative solution for the override behavior.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link
Contributor

openshift-ci bot commented Feb 4, 2024

@miheer: all tests passed!

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@dhellmann
Copy link
Contributor

#1555 is changing the enhancement template in a way that will cause the header check in the linter job to fail for existing PRs. If this PR is merged within the development period for 4.16 you may override the linter if the only failures are caused by issues with the headers (please make sure the markdown formatting is correct). If this PR is not merged before 4.16 development closes, please update the enhancement to conform to the new template.

@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 13, 2024
@openshift-bot
Copy link

Stale enhancement proposals rot after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Rotten proposals close after an additional 7d of inactivity.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Mar 20, 2024
@openshift-bot
Copy link

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Mar 28, 2024
Copy link
Contributor

openshift-ci bot commented Mar 28, 2024

@openshift-bot: Closed this PR.

In response to this:

Rotten enhancement proposals close after 7d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Reopen the proposal by commenting /reopen.
Mark the proposal as fresh by commenting /remove-lifecycle rotten.
Exclude this proposal from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

5 similar comments
@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

@dhellmann
Copy link
Contributor

(automated message) This pull request is closed with lifecycle/rotten. The associated Jira ticket, NE-982, has status "Closed, Done". Should the PR be reopened, updated, and merged? If not, removing the lifecycle/rotten label will tell this bot to ignore it in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants