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-367: Add logLevel and operatorLogLevel APIs for DNS #931

Merged
merged 1 commit into from
Feb 22, 2022

Conversation

miheer
Copy link
Contributor

@miheer miheer commented Oct 14, 2021

Add logLevel and operatorLogLevel APIs for DNS https://issues.redhat.com/browse/NE-367

@openshift-ci openshift-ci bot requested review from russellb and sttts October 14, 2021 10:23
@miheer miheer force-pushed the dns-logging branch 8 times, most recently from fbfa319 to f6e231e Compare October 14, 2021 10:55
@miheer
Copy link
Contributor Author

miheer commented Oct 14, 2021

@Miciah PTAL

Copy link
Contributor

@Miciah Miciah left a comment

Choose a reason for hiding this comment

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

I have some comments regarding markup issues, copy edits, and points of clarification, but overall this looks great.

Comment on lines 43 to 44
Supporting a trivial way to raise the verbosity of the DNS Operator and it's Operands (CoreDNS) would make debugging
cluster dns operator and CoreDNS issues easier for cluster administrators and OpenShift developers.
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
Supporting a trivial way to raise the verbosity of the DNS Operator and it's Operands (CoreDNS) would make debugging
cluster dns operator and CoreDNS issues easier for cluster administrators and OpenShift developers.
Supporting a trivial way to raise the verbosity of the DNS Operator and its Operands (CoreDNS) would make debugging
the Operator and CoreDNS issues easier for cluster administrators and OpenShift developers.

Supporting a trivial way to raise the verbosity of the DNS Operator and it's Operands (CoreDNS) would make debugging
cluster dns operator and CoreDNS issues easier for cluster administrators and OpenShift developers.

To have the CoreDNS enable the following classes such as error, denial and all.
Copy link
Contributor

Choose a reason for hiding this comment

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

This isn't a complete sentence.

Suggested change
To have the CoreDNS enable the following classes such as error, denial and all.
For logging purposes, CoreDNS defines several classes of responses, such as error, denial and all.

To have the CoreDNS enable the following classes such as error, denial and all.
denial: either NXDOMAIN or nodata responses (Name exists, type does not). A nodata response sets the return code to NOERROR.
error: SERVFAIL, NOTIMP, REFUSED, etc. Anything that indicates the remote server is not willing to resolve the request.
all: the default - nothing is specified. Using of this class means that all messages will be logged whatever we mix together with "all".
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 mean by "nothing is specified"? I'm not sure what you mean by "whatever we mix together with 'all'"; do you mean that "all" takes precedence when CoreDNS is configured to log a list of classes that includes "all"? Is that important to mention here? Remember, this is the motivation section; implementation details belong elsewhere.

Suggested change
all: the default - nothing is specified. Using of this class means that all messages will be logged whatever we mix together with "all".
all: all responses, including successful responses, errors, and denials.

desire more in-depth logging statements when working on the operator's controllers.

Additionally, a logging level API for CoreDNS logs would assist cluster administrators who wish to have more control
over the output of their DNSController's CoreDNS logs.
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
over the output of their DNSController's CoreDNS logs.
over CoreDNS logs.


### Non-Goals

* Change the default logging verbosity of the DNS Operator or the CoreDNS in production OCP clusters.
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
* Change the default logging verbosity of the DNS Operator or the CoreDNS in production OCP clusters.
* Change the default logging verbosity of the DNS Operator or CoreDNS in production OCP clusters.


### Risks and Mitigations

Raising the logging verbosity for any component typically results in larger log files that grow quickly.
Copy link
Contributor

Choose a reason for hiding this comment

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

If possible, each risk should have a mitigation. For example, the godoc for the new API field could include a warning that setting logLevel: Trace will produce extremely verbose logs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@Miciah Do you mean add a comment in the API PR and recreate the go docs

Copy link
Contributor

Choose a reason for hiding this comment

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

No, I mean the point of having a "Risks and Mitigations" section is that you'll describe the mitigation for each risk.

### Upgrade / Downgrade Strategy

On downgrade, any logging options are ignored by the DNS Operator and CoreDNS.
A harmless logging level configmap in the `openshift-dns` namespace may be left behind.
Copy link
Contributor

Choose a reason for hiding this comment

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

Why would there be an extra configmap?

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 I need to remove this. the downgraded operator will update the configmap and delete the log stanzas.

Comment on lines 51 to 55
Also, a logging level API for the DNS Operator would assist OpenShift developers working on the DNS Operator who may
desire more in-depth logging statements when working on the operator's controllers.

Additionally, a logging level API for CoreDNS logs would assist cluster administrators who wish to have more control
over the output of their DNSController's CoreDNS logs.
Copy link
Contributor

Choose a reason for hiding this comment

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

This section would flow better if you swapped these two paragraphs (adjusting transitions as necessary).


### Goals

* Add a user-facing API for controlling the run-time verbosity of the [OpenShift DNS Operator and CoreDNS](https://github.com/openshift/cluster-dns-operator)
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
* Add a user-facing API for controlling the run-time verbosity of the [OpenShift DNS Operator and CoreDNS](https://github.com/openshift/cluster-dns-operator)
* Add a user-facing API for controlling the run-time verbosity of the [OpenShift DNS Operator and CoreDNS](https://github.com/openshift/cluster-dns-operator).


Valid values for logLevel are: "Normal", "Debug", "Trace", "TraceAll" as per [Operator Api](https://github.com/openshift/api/blob/master/operator/v1/types.go#L62)

We will be enabling the CLASSES(https://github.com/coredns/coredns/tree/master/plugin/log#syntax) of coredns w.r.t to the logLevel we have defined in openshift api.
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
We will be enabling the CLASSES(https://github.com/coredns/coredns/tree/master/plugin/log#syntax) of coredns w.r.t to the logLevel we have defined in openshift api.
We will enable logging of CoreDNS's [classes of responses](https://github.com/coredns/coredns/tree/master/plugin/log#syntax) that correspond to the log level specified in the API.

// See LogLevel for more information about each available logging level.
//
// +optional
OperatorLogLevel LogLevel `json:"operatorLogLevel"`
Copy link
Contributor

Choose a reason for hiding this comment

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

add defaulting to the standard loglevel.

// logLevel describes the logging verbosity of the DNSController for CoreDNS.
//
// +optional
LogLevel LogLevel `json:"logLevel"`
Copy link
Contributor

Choose a reason for hiding this comment

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

add defaulting to the standard loglevel.

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 @sttts forgot to update here as had added it the api openshift/api#1031
@sttts just a request if would be able to review openshift/api#1031 then that will be great.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@sttts PTAL just added the changes you requested. Thanks in advance!

Copy link
Contributor

Choose a reason for hiding this comment

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

commented on the api

@miheer miheer force-pushed the dns-logging branch 3 times, most recently from 095c433 to 4d713d6 Compare October 15, 2021 13:35
@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 Nov 12, 2021
@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 Nov 19, 2021
@miheer
Copy link
Contributor Author

miheer commented Nov 26, 2021

@Miciah @alebedev87 @arjunrn PTAL

@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 Dec 3, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 3, 2021

@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 Dec 11, 2021

/remove-lifecycle rotten

@openshift-ci openshift-ci bot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Dec 11, 2021
@miheer
Copy link
Contributor Author

miheer commented Dec 11, 2021

/reopen

@openshift-ci openshift-ci bot reopened this Dec 11, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 11, 2021

@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.

Comment on lines 46 to 49
For logging purposes, CoreDNS defines several classes of responses, such as error, denial and all.
denial: either NXDOMAIN or nodata responses (Name exists, type does not). A nodata response sets the return code to NOERROR.
error: SERVFAIL, NOTIMP, REFUSED, etc. Anything that indicates the remote server is not willing to resolve the request.
all: all responses, including successful responses, errors, and denials.
Copy link
Contributor

Choose a reason for hiding this comment

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

Please fix the formatting.

Suggested change
For logging purposes, CoreDNS defines several classes of responses, such as error, denial and all.
denial: either NXDOMAIN or nodata responses (Name exists, type does not). A nodata response sets the return code to NOERROR.
error: SERVFAIL, NOTIMP, REFUSED, etc. Anything that indicates the remote server is not willing to resolve the request.
all: all responses, including successful responses, errors, and denials.
For logging purposes, CoreDNS defines several classes of responses:
* denial: NXDOMAIN and nodata responses (name exists, record type does not). A nodata response sets the return code to NOERROR.
* error: SERVFAIL, NOTIMP, REFUSED, etc. Anything that indicates the remote server is not willing to resolve the request.
* all: all responses, including successful responses, errors, and denials.

## Proposal

### DNS Operator Log Level API
We will be creating an API for **field** `operatorLogLevel` in DNSSpec in accordance with `DNSLogLevel` type.
Copy link
Contributor

Choose a reason for hiding this comment

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

Why the emphasis? You ended up defining a new type, right?

Suggested change
We will be creating an API for **field** `operatorLogLevel` in DNSSpec in accordance with `DNSLogLevel` type.
We will be defining a new API field `operatorLogLevel` in `DNSSpec` with newly defined type `DNSLogLevel`.
This type is similar to the existing `LogLevel` type except that the values of `DNSLogLevel` are a subset of the values of `LogLevel`.


### DNS Operator Log Level API
We will be creating an API for **field** `operatorLogLevel` in DNSSpec in accordance with `DNSLogLevel` type.
Valid values will be : "Normal", "Debug", "Trace".
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
Valid values will be : "Normal", "Debug", "Trace".
Valid values will be the following: "Normal", "Debug", "Trace".

The CoreDNS reloads its configuration without requiring a restart, so the operator can adjust CoreDNS's log level just by updating the Corefile configmap without need to restart the pod.


We will be adding an API field `operatorlogLevel` in DNSSpec for the type DNSLogLevel
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
We will be adding an API field `operatorlogLevel` in DNSSpec for the type DNSLogLevel
We will be adding an API field `operatorlogLevel` in `DNSSpec` with the type `DNSLogLevel`:

```
This new field would allow a cluster administrator to specify the desired logging level specifically for the DNS Operator.

Additionally, a new `LogLevel` of type `DNSLogLevel` will be added for CoredDNS logging :
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
Additionally, a new `LogLevel` of type `DNSLogLevel` will be added for CoredDNS logging :
Additionally, a new API field `LogLevel` of type `DNSLogLevel` will be added to specify the log level for CoreDNS:

Comment on lines 169 to 170
Adding this prometheus alert is nice, but it would be more useful we can see which request are getting SERVFAIL response.
So we would to enable the log plugin for CoreDNS to log queries.
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
Adding this prometheus alert is nice, but it would be more useful we can see which request are getting SERVFAIL response.
So we would to enable the log plugin for CoreDNS to log queries.
Adding this Prometheus alert is useful, but it would be more useful if we could see which requests were getting SERVFAIL responses.
So we would like to configure the log plugin for CoreDNS to log queries.

Comment on lines 168 to 172
* Some users recently added the new alert 'CoreDNS is returning SERVFAIL for X% of requests alert' to the recent updates of OCP.
Adding this prometheus alert is nice, but it would be more useful we can see which request are getting SERVFAIL response.
So we would to enable the log plugin for CoreDNS to log queries.

* Some user want to avoid use of tcpdump to see the queries and want log plugin to be enabled to log queries in coredns.
Copy link
Contributor

Choose a reason for hiding this comment

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

I believe my previous comment here still applies.


### Risks and Mitigations

Raising the logging verbosity for any component typically results in larger log files that grow quickly.
Copy link
Contributor

Choose a reason for hiding this comment

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

No, I mean the point of having a "Risks and Mitigations" section is that you'll describe the mitigation for each risk.

* Don't provide any DNS logging level APIs for the operator and coredns (current behavior)
* Raise current verbosity of the DNS Operator and coredns (not desirable)
Copy link
Contributor

@Miciah Miciah Dec 11, 2021

Choose a reason for hiding this comment

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

A third alternative is tcpdump.

Normally we'd want a little more discussion as to why the alternative was not considered used.

Comment on lines 233 to 239
### API Extensions

### Operational Aspects of API Extensions

#### Failure Modes

#### Support Procedures
Copy link
Contributor

Choose a reason for hiding this comment

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

These should be filled out.

@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 Jan 8, 2022
@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 Jan 15, 2022
@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 22, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 22, 2022

@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 27, 2022

/remove-lifecycle rotten

@openshift-ci openshift-ci bot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Jan 27, 2022
@miheer
Copy link
Contributor Author

miheer commented Jan 27, 2022

/reopen

@openshift-ci openshift-ci bot reopened this Jan 27, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2022

@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.

Copy link
Contributor

@Miciah Miciah left a comment

Choose a reason for hiding this comment

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

Thanks! We can address remaining issues in a follow-up.
/lgtm

Comment on lines +52 to +54
* all: all responses, including successful responses, errors, and denials.
A logging level API for CoreDNS logs would assist cluster administrators who wish to have more control
over CoreDNS logs.
Copy link
Contributor

Choose a reason for hiding this comment

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

Needs a linebreak to prevent lines 53-54 from being formatted as part of the bullet on line 52.

Suggested change
* all: all responses, including successful responses, errors, and denials.
A logging level API for CoreDNS logs would assist cluster administrators who wish to have more control
over CoreDNS logs.
* all: all responses, including successful responses, errors, and denials.
A logging level API for CoreDNS logs would assist cluster administrators who wish to have more control
over CoreDNS logs.

Comment on lines +59 to +61
* Some users want to add new prometheus alert 'CoreDNS is returning SERVFAIL for X% of requests alert' to the recent updates of OCP.
Adding this Prometheus alert is useful, but it would be more useful if we could see which requests were getting SERVFAIL responses.
So we would like to configure the log plugin for CoreDNS to log queries.
Copy link
Contributor

Choose a reason for hiding this comment

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

```
After the logging level on a Logger is set, log entries with that severity or anything above it will be logged.
For example, `log.SetLevel(log.InfoLevel)` will log anything that is info or above (warn, error, fatal, panic). This is the default log level.
So, we will be reading `operatorLogLevel` in a separate controller to watch dnses and setting log level.
Copy link
Contributor

Choose a reason for hiding this comment

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

You didn't end up using a separate controller, so this text should be updated when you get the chance.

Comment on lines +126 to +169
```go
// operatorLogLevel controls the logging level of the DNS Operator.
// Valid values are: "Normal", "Debug", "Trace".
// Defaults to "Normal".
// setting operatorLogLevel: Trace will produce extremely verbose logs.
// +optional
// +kubebuilder:default=Normal
OperatorLogLevel DNSLogLevel `json:"operatorLogLevel,omitempty"`
```
This new field would allow a cluster administrator to specify the desired logging level specifically for the DNS Operator.

Additionally, a new API field `LogLevel` of type `DNSLogLevel` will be added to specify the log level for CoreDNS:
```go
// logLevel describes the desired logging verbosity for CoreDNS.
// Any one of the following values may be specified:
// * Normal logs errors from upstream resolvers.
// * Debug logs errors, NXDOMAIN responses, and NODATA responses.
// * Trace logs errors and all responses.
// Setting logLevel: Trace will produce extremely verbose logs.
// Valid values are: "Normal", "Debug", "Trace".
// Defaults to "Normal".
// +optional
// +kubebuilder:default=Normal
LogLevel DNSLogLevel `json:"logLevel,omitempty"`
```

Both of these new API fields use the aforementioned `DNSLogLevel` type, which is defined as follows:
```go

// +kubebuilder:validation:Enum:=Normal;Debug;Trace
type DNSLogLevel string

var (
// Normal is the default. Normal, working log information, everything is fine, but helpful notices for auditing or common operations. In kube, this is probably glog=2.
DNSLogLevelNormal DNSLogLevel = "Normal"

// Debug is used when something went wrong. Even common operations may be logged, and less helpful but more quantity of notices. In kube, this is probably glog=4.
DNSLogLevelDebug DNSLogLevel = "Debug"

// Trace is used when something went really badly and even more verbose logs are needed. Logging every function call as part of a common operation, to tracing execution of a query. In kube, this is probably glog=6.
DNSLogLevelTrace DNSLogLevel = "Trace"
)

```
Copy link
Contributor

Choose a reason for hiding this comment

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

The definitions we ended up with in openshift/api#1031 look a bit different; the enhancement text should be updated eventually.

@Miciah
Copy link
Contributor

Miciah commented Feb 22, 2022

/approve

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Feb 22, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 22, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Miciah

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 22, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 22, 2022

@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.

@openshift-merge-robot openshift-merge-robot merged commit fd51690 into openshift:master Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants