Repository: metal3-io/baremetal-operator
Pull request #1014 (2021-11-04 18:37:57)

Add BMC subscription CRD and reconciler
This patch implements the fast eventing API:

https://github.com/metal3-io/metal3-docs/pull/167

We introduce a new CRD, and a new reconciler.  We use the Ironic API to
communicate with the BMC to manage node subscriptions.

metal3-io-bot: [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 **dtantsur** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @dtantsur` 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=metal3-io%2Fbaremetal-operator).

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

- **[OWNERS](https://github.com/metal3-io/baremetal-operator/blob/master/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":["dtantsur"]} -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | d9f57b01a7877bf7d9e0595d3ab2172b86fe1184 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1456329897642299392) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | d9f57b01a7877bf7d9e0595d3ab2172b86fe1184 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1456329897642299392) | true | `/test unit`
generate | d9f57b01a7877bf7d9e0595d3ab2172b86fe1184 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1456329898258862080) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
generate | 0c9ab9299d5178f5b7a553a80f3f2f318d1d03e3 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1456335491363246080) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: PR needs rebase.

<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.
</details>
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
manifestlint | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1460986610236526592) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
manifestlint | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1460986610236526592) | true | `/test manifestlint`
gosec | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1460986609900982272) | true | `/test gosec`
gomod | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1460986609942925312) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
manifestlint | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1460986610236526592) | true | `/test manifestlint`
gosec | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1460986609900982272) | true | `/test gosec`
gomod | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1460986609942925312) | true | `/test gomod`
unit | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1460986610018422784) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
manifestlint | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1460986610236526592) | true | `/test manifestlint`
gosec | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1460986609900982272) | true | `/test gosec`
gomod | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1460986609942925312) | true | `/test gomod`
unit | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1460986610018422784) | true | `/test unit`
golint | 48fe7fef8a1f110dc504e97742da22f0d184b5d4 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1460986610131668992) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463232728957718528) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463232728957718528) | true | `/test gofmt`
manifestlint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463232729192599552) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463232728957718528) | true | `/test gofmt`
manifestlint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463232729192599552) | true | `/test manifestlint`
golint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463232729150656512) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463232728957718528) | true | `/test gofmt`
manifestlint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463232729192599552) | true | `/test manifestlint`
golint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463232729150656512) | true | `/test golint`
generate | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463232729146462208) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463232728957718528) | true | `/test gofmt`
manifestlint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463232729192599552) | true | `/test manifestlint`
golint | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463232729150656512) | true | `/test golint`
generate | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463232729146462208) | true | `/test generate`
gosec | 879222ba3d76d06a8587a7ea3c5d14d089deaa98 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463232728978690048) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
generate | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285403879477248) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
generate | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285403879477248) | true | `/test generate`
gofmt | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285388159225856) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
generate | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285403879477248) | true | `/test generate`
gofmt | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285388159225856) | true | `/test gofmt`
unit | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285396916932608) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
generate | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285403879477248) | true | `/test generate`
gofmt | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285388159225856) | true | `/test gofmt`
unit | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285396916932608) | true | `/test unit`
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
generate | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285403879477248) | true | `/test generate`
gofmt | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285388159225856) | true | `/test gofmt`
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285406874210304) | true | `/test golint`
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
gofmt | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285388159225856) | true | `/test gofmt`
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
gofmt | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285388159225856) | true | `/test gofmt`
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
gomod | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285395537006592) | true | `/test gomod`
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`
gofmt | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285976578134016) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285392995258368) | true | `/test gosec`
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`
gofmt | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285976578134016) | true | `/test gofmt`
gomod | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285977966448640) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
manifestlint | 6bccc1dc0db6f18e3075e8c78670659b160e90e2 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463285414918885376) | true | `/test manifestlint`
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`
gofmt | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463285976578134016) | true | `/test gofmt`
gomod | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285977966448640) | true | `/test gomod`
gosec | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285976821403648) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`
gomod | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463285977966448640) | true | `/test gomod`
gosec | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285976821403648) | true | `/test gosec`
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`
gosec | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463285976821403648) | true | `/test gosec`
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463286702536658944) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
golint | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463285981636464640) | true | `/test golint`
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463286702536658944) | true | `/test gomod`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463285978201329664) | true | `/test unit`
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463286702536658944) | true | `/test gomod`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`
golint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463286707037147136) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
generate | d66945997db17b9b99c71d856baf362d4a427363 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463285978557845504) | true | `/test generate`
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463286702536658944) | true | `/test gomod`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`
golint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463286707037147136) | true | `/test golint`
unit | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463286703220330496) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463286702536658944) | true | `/test gomod`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`
golint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463286707037147136) | true | `/test golint`
unit | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463286703220330496) | true | `/test unit`
generate | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463286703371325440) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463286702536658944) | true | `/test gomod`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`
golint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463286707037147136) | true | `/test golint`
unit | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463286703220330496) | true | `/test unit`
generate | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463286703371325440) | true | `/test generate`
manifestlint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463286709541146624) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
honza: /retest
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`
golint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463286707037147136) | true | `/test golint`
unit | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463286703220330496) | true | `/test unit`
generate | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463286703371325440) | true | `/test generate`
manifestlint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463286709541146624) | true | `/test manifestlint`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463484422568284160) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463286701970427904) | true | `/test gofmt`
gosec | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463286702360498176) | true | `/test gosec`
golint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463286707037147136) | true | `/test golint`
unit | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463286703220330496) | true | `/test unit`
generate | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463286703371325440) | true | `/test generate`
gomod | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463484422568284160) | true | `/test gomod`
manifestlint | 9d57e10407d107afbfd55edc3665f10a3a00b9ac | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463484432907243520) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
gofmt | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952667024822272) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952667251314688) | true | `/test unit`
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
gofmt | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952667024822272) | true | `/test gofmt`
generate | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952667255508992) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
gofmt | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952667024822272) | true | `/test gofmt`
generate | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952667255508992) | true | `/test generate`
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952667049988096) | true | `/test gosec`
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
gofmt | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952667024822272) | true | `/test gofmt`
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
manifestlint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952667414892544) | true | `/test manifestlint`
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
gofmt | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952667024822272) | true | `/test gofmt`
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
gofmt | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952667024822272) | true | `/test gofmt`
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
manifestlint | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952985741594624) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gomod | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952667100319744) | true | `/test gomod`
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
manifestlint | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952985741594624) | true | `/test manifestlint`
gofmt | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952985447993344) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
golint | 00af48a98f733ffe4eead58cb6fd8975119568a6 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463952667331006464) | true | `/test golint`
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
manifestlint | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463952985741594624) | true | `/test manifestlint`
gofmt | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952985447993344) | true | `/test gofmt`
gomod | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952985489936384) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
gofmt | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952985447993344) | true | `/test gofmt`
gomod | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463952985489936384) | true | `/test gomod`
manifestlint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463953926599479296) | true | `/test manifestlint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
gofmt | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952985447993344) | true | `/test gofmt`
manifestlint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463953926599479296) | true | `/test manifestlint`
gomod | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463953926305878016) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
gofmt | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463952985447993344) | true | `/test gofmt`
manifestlint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463953926599479296) | true | `/test manifestlint`
gomod | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463953926305878016) | true | `/test gomod`
golint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463953926532370432) | true | `/test golint`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463952985523490816) | true | `/test unit`
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
manifestlint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463953926599479296) | true | `/test manifestlint`
gomod | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463953926305878016) | true | `/test gomod`
golint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463953926532370432) | true | `/test golint`
gofmt | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463953926242963456) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
generate | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463952985661902848) | true | `/test generate`
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
manifestlint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463953926599479296) | true | `/test manifestlint`
gomod | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463953926305878016) | true | `/test gomod`
golint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463953926532370432) | true | `/test golint`
gofmt | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463953926242963456) | true | `/test gofmt`
unit | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463953926331043840) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | a0db09b99a6fbc78658335abe32b7b0453916622 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1463952985468964864) | true | `/test gosec`
manifestlint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/manifestlint/1463953926599479296) | true | `/test manifestlint`
gomod | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1463953926305878016) | true | `/test gomod`
golint | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/golint/1463953926532370432) | true | `/test golint`
gofmt | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1463953926242963456) | true | `/test gofmt`
unit | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/unit/1463953926331043840) | true | `/test unit`
generate | 99a4deb0a17daeb93448ab2e74ff49e26c274913 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1463953926494621696) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
bfournie: /retest
bfournie: /test-v1b1-centos-integration
/test-v1b1-integration 
honza: I just found a bug in the create or update method; I'll push a fix ASAP.
/hold
honza: /unhold
elfosardo: /test-v1b1-centos-integration
/test-v1b1-integration
metal3-io-bot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-827685730" title="Approved">elfosardo</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **dtantsur** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @dtantsur` 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=metal3-io%2Fbaremetal-operator).

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

- **[OWNERS](https://github.com/metal3-io/baremetal-operator/blob/master/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":["dtantsur"]} -->
bfournie: Seeing this error in the integration test:
`E1209 15:00:21.061725       1 reflector.go:138] pkg/mod/k8s.io/client-go@v0.21.4/tools/cache/reflector.go:167: Failed to watch *v1alpha1.BMCEventSubscription: failed to list *v1alpha1.BMCEventSubscription: bmceventsubscriptions.metal3.io is forbidden: User "system:serviceaccount:baremetal-operator-system:baremetal-operator-controller-manager" cannot list resource "bmceventsubscriptions" in API group "metal3.io" at the cluster scope`

I believe you need to add rbac settings for the bmceventsubscription to the new controller, for example, similar to this:
//+kubebuilder:rbac:groups=metal3.io,resources=hostfirmwaresettings,verbs=get;list;watch;create;update;patch;delete
//+kubebuilder:rbac:groups=metal3.io,resources=hostfirmwaresettings/status,verbs=get;update;patch

metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1468979553585074176) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1468979553585074176) | true | `/test gofmt`
generate | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1468979553761234944) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1468979553585074176) | true | `/test gofmt`
generate | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1468979553761234944) | true | `/test generate`
gosec | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1468979553610240000) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
bfournie: /retest
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
generate | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1468979553761234944) | true | `/test generate`
gosec | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1468979553610240000) | true | `/test gosec`
gofmt | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1468981176264822784) | true | `/test gofmt`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
generate | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1468979553761234944) | true | `/test generate`
gofmt | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1468981176264822784) | true | `/test gofmt`
gosec | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1468981176298377216) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following tests **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gofmt | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gofmt/1468981176264822784) | true | `/test gofmt`
gosec | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1468981176298377216) | true | `/test gosec`
generate | 1e6e9f074d533b9da76ca150e259bc9f6ebd586e | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/generate/1468981176344514560) | true | `/test generate`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | e3460d4bd79aa6ad629525d6108be2041f4be3d9 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1468982497621577728) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
bfournie: /test-v1b1-centos-integration
/test-v1b1-integration 
honza: Running `make manifests` yields no changes. I just rebased on top of master to see if that does anything.
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | b749620f59d3f8dcb1a80573983cfea0b0d30704 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1469283524992307200) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
honza: It looks like a line had to be added to the baremetal controller file as well.
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gosec | f6af802f73ab8e04cd944b518e26609b1e719ee8 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gosec/1469286359410675713) | true | `/test gosec`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
bfournie: /test-v1b1-centos-integration
/test-v1b1-integration
honza: /test-v1b1-centos-integration
/test-v1b1-integration
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gomod | e85c8dee8baf449cb8e3a49460ad161b0600914f | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1469777205851590657) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
honza: /test-v1b1-centos-integration
/test-v1b1-integration
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gomod | 40d02ee95857e54becc3a2b88688fbd377a790a8 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1470387089940942848) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
metal3-io-bot: @honza: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
gomod | 8490f112ddd475313306ee5dd781c8e3cfc9027c | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1014/gomod/1470409987267235840) | true | `/test gomod`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1014). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:honza).

<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 -->
honza: /test-v1b1-centos-integration
/test-v1b1-integration
honza: /test-v1b1-centos-integration
/test-v1b1-integration

Previous run didn't show any RBAC issues.
metal3-io-bot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-830884738" title="Approved">bfournie</a>*, *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-827685730" title="Approved">elfosardo</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **dtantsur** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @dtantsur` 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=metal3-io%2Fbaremetal-operator).

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

- **[OWNERS](https://github.com/metal3-io/baremetal-operator/blob/master/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":["dtantsur"]} -->
metal3-io-bot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-830884738" title="Approved">bfournie</a>*, *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-831115114" title="Approved">elfosardo</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **dtantsur** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @dtantsur` 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=metal3-io%2Fbaremetal-operator).

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

- **[OWNERS](https://github.com/metal3-io/baremetal-operator/blob/master/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":["dtantsur"]} -->
metal3-io-bot: @honza: PR needs rebase.

<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.
</details>
dtantsur: /approve
/test-v1b1-centos-integration 
/test-v1b1-integration 
metal3-io-bot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-830884738" title="Approved">bfournie</a>*, *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#issuecomment-994634493" title="Approved">dtantsur</a>*, *<a href="https://github.com/metal3-io/baremetal-operator/pull/1014#pullrequestreview-831115114" title="Approved">elfosardo</a>*

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

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/metal3-io/baremetal-operator/blob/master/OWNERS)~~ [dtantsur]

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/PROJECT b/PROJECT
index a76ea4d6..912bb420 100644
--- a/PROJECT
+++ b/PROJECT
@@ -44,4 +44,13 @@ resources:
   kind: PreprovisioningImage
   path: github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1
   version: v1alpha1
+- api:
+    crdVersion: v1
+    namespaced: true
+  controller: true
+  domain: metal3.io
+  group: metal3.io
+  kind: BMCEventSubscription
+  path: github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1
+  version: v1alpha1
 version: "3"
diff --git a/apis/go.mod b/apis/go.mod
index b201ad7c..1b2ebca1 100644
--- a/apis/go.mod
+++ b/apis/go.mod
@@ -5,6 +5,7 @@ go 1.17
 require (
 	github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.0.0
 	github.com/google/uuid v1.1.2
+	github.com/pkg/errors v0.9.1
 	github.com/stretchr/testify v1.7.0
 	k8s.io/api v0.21.4
 	k8s.io/apimachinery v0.21.4
@@ -31,7 +32,6 @@ require (
 	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.1 // indirect
-	github.com/pkg/errors v0.9.1 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
 	github.com/prometheus/client_golang v1.11.0 // indirect
 	github.com/prometheus/client_model v0.2.0 // indirect
diff --git a/apis/metal3.io/v1alpha1/bmceventsubscription_types.go b/apis/metal3.io/v1alpha1/bmceventsubscription_types.go
new file mode 100644
index 00000000..aa8b8e69
--- /dev/null
+++ b/apis/metal3.io/v1alpha1/bmceventsubscription_types.go
@@ -0,0 +1,80 @@
+/*
+
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package v1alpha1
+
+import (
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+const (
+
+	// BMCEventSubscriptionFinalizer is the name of the finalizer added to
+	// subscriptions to block delete operations until the subscription is removed
+	// from the BMC.
+	BMCEventSubscriptionFinalizer string = "bmceventsubscription.metal3.io"
+)
+
+type BMCEventSubscriptionSpec struct {
+	// A reference to a BareMetalHost
+	HostName string `json:"hostName,omitempty"`
+
+	// A webhook URL to send events to
+	Destination string `json:"destination,omitempty"`
+
+	// Arbitrary user-provided context for the event
+	Context string `json:"context,omitempty"`
+
+	// A secret containing HTTP headers which should be passed along to the Destination
+	// when making a request
+	HTTPHeadersRef *corev1.SecretReference `json:"httpHeadersRef,omitempty"`
+}
+
+type BMCEventSubscriptionStatus struct {
+	SubscriptionID string `json:"subscriptionID,omitempty"`
+	Error          string `json:"error,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+//
+// BMCEventSubscription is the Schema for the fast eventing API
+// +k8s:openapi-gen=true
+// +kubebuilder:resource:shortName=bes;bmcevent
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Error",type="string",JSONPath=".status.error",description="The most recent error message"
+// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of BMCEventSubscription"
+// +kubebuilder:object:root=true
+type BMCEventSubscription struct {
+	metav1.TypeMeta   `json:",inline"`
+	metav1.ObjectMeta `json:"metadata,omitempty"`
+
+	Spec   BMCEventSubscriptionSpec   `json:"spec,omitempty"`
+	Status BMCEventSubscriptionStatus `json:"status,omitempty"`
+}
+
+// +kubebuilder:object:root=true
+
+// BMCEventSubscriptionList contains a list of BMCEventSubscriptions
+type BMCEventSubscriptionList struct {
+	metav1.TypeMeta `json:",inline"`
+	metav1.ListMeta `json:"metadata,omitempty"`
+	Items           []BMCEventSubscription `json:"items"`
+}
+
+func init() {
+	SchemeBuilder.Register(&BMCEventSubscription{}, &BMCEventSubscriptionList{})
+}
diff --git a/apis/metal3.io/v1alpha1/bmceventsubscription_validation.go b/apis/metal3.io/v1alpha1/bmceventsubscription_validation.go
new file mode 100644
index 00000000..73b86dd6
--- /dev/null
+++ b/apis/metal3.io/v1alpha1/bmceventsubscription_validation.go
@@ -0,0 +1,54 @@
+/*
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package v1alpha1
+
+import (
+	"fmt"
+	"net/url"
+
+	"github.com/pkg/errors"
+
+	logf "sigs.k8s.io/controller-runtime/pkg/log"
+)
+
+// bmclog is for logging in this package.
+var bmclog = logf.Log.WithName("bmceventsubscription-validation")
+
+// validateSubscription validates BMCEventSubscription resource for creation
+func (s *BMCEventSubscription) validateSubscription() []error {
+	bmclog.Info("validate create", "name", s.Name)
+	var errs []error
+
+	if s.Spec.HostName == "" {
+		errs = append(errs, fmt.Errorf("HostName cannot be empty"))
+	}
+
+	if s.Spec.Destination == "" {
+		errs = append(errs, fmt.Errorf("Destination cannot be empty"))
+	} else {
+		destinationUrl, err := url.ParseRequestURI(s.Spec.Destination)
+
+		if err != nil {
+			errs = append(errs, errors.Wrap(err, "Destination is an invalid URL"))
+		} else {
+			if destinationUrl.Path == "" {
+				errs = append(errs, fmt.Errorf("Hostname-only destination must have a trailing slash"))
+			}
+		}
+	}
+
+	return errs
+}
diff --git a/apis/metal3.io/v1alpha1/bmceventsubscription_webhook.go b/apis/metal3.io/v1alpha1/bmceventsubscription_webhook.go
new file mode 100644
index 00000000..4e7cc579
--- /dev/null
+++ b/apis/metal3.io/v1alpha1/bmceventsubscription_webhook.go
@@ -0,0 +1,54 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package v1alpha1
+
+import (
+	"fmt"
+
+	"k8s.io/apimachinery/pkg/util/errors"
+
+	"k8s.io/apimachinery/pkg/runtime"
+	ctrl "sigs.k8s.io/controller-runtime"
+	logf "sigs.k8s.io/controller-runtime/pkg/log"
+	"sigs.k8s.io/controller-runtime/pkg/webhook"
+)
+
+// bmcsubscriptionlog is for logging in this package.
+var bmcsubscriptionlog = logf.Log.WithName("bmceventsubscription-resource")
+
+func (s *BMCEventSubscription) SetupWebhookWithManager(mgr ctrl.Manager) error {
+	return ctrl.NewWebhookManagedBy(mgr).
+		For(s).
+		Complete()
+}
+
+//+kubebuilder:webhook:verbs=create;update,path=/validate-metal3-io-v1alpha1-bmceventsubscription,mutating=false,failurePolicy=fail,sideEffects=none,admissionReviewVersions=v1;v1beta,groups=metal3.io,resources=bmceventsubscriptions,versions=v1alpha1,name=bmceventsubscription.metal3.io
+
+var _ webhook.Validator = &BMCEventSubscription{}
+
+// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
+func (s *BMCEventSubscription) ValidateCreate() error {
+	bmcsubscriptionlog.Info("validate create", "name", s.Name)
+	return errors.NewAggregate(s.validateSubscription())
+}
+
+// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
+func (s *BMCEventSubscription) ValidateUpdate(old runtime.Object) error {
+	bmcsubscriptionlog.Info("validate update", "name", s.Name)
+	return fmt.Errorf("subscriptions cannot be updated, please recreate it")
+}
+
+// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
+func (s *BMCEventSubscription) ValidateDelete() error {
+	return nil
+}
diff --git a/apis/metal3.io/v1alpha1/firmwareschema_types.go b/apis/metal3.io/v1alpha1/firmwareschema_types.go
index 8c7fc852..67620b88 100644
--- a/apis/metal3.io/v1alpha1/firmwareschema_types.go
+++ b/apis/metal3.io/v1alpha1/firmwareschema_types.go
@@ -18,7 +18,6 @@ package v1alpha1
 
 import (
 	"fmt"
-	"strconv"
 	"strings"
 
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -50,6 +49,9 @@ type SettingSchema struct {
 	// Whether or not this setting is read only.
 	ReadOnly *bool `json:"read_only,omitempty"`
 
+	// Whether or not a reset is required after changing this setting.
+	ResetRequired *bool `json:"reset_required,omitempty"`
+
 	// Whether or not this setting's value is unique to this node, e.g.
 	// a serial number.
 	Unique *bool `json:"unique,omitempty"`
@@ -85,16 +87,11 @@ func (schema *SettingSchema) Validate(name string, value intstr.IntOrString) err
 		return SchemaSettingError{name: name, message: fmt.Sprintf("unknown enumeration value - %s", value.String())}
 
 	case "Integer":
-		if value.Type == intstr.String {
-			if _, err := strconv.Atoi(value.String()); err != nil {
-				return SchemaSettingError{name: name, message: fmt.Sprintf("String %s entered while integer expected", value.String())}
-			}
-		}
 		if schema.LowerBound != nil && value.IntValue() < *schema.LowerBound {
-			return SchemaSettingError{name: name, message: fmt.Sprintf("integer %d is below minimum value %d", value.IntValue(), *schema.LowerBound)}
+			return SchemaSettingError{name: name, message: fmt.Sprintf("integer %s is below minimum value %d", value.String(), *schema.LowerBound)}
 		}
 		if schema.UpperBound != nil && value.IntValue() > *schema.UpperBound {
-			return SchemaSettingError{name: name, message: fmt.Sprintf("integer %d is above maximum value %d", value.IntValue(), *schema.UpperBound)}
+			return SchemaSettingError{name: name, message: fmt.Sprintf("integer %s is above maximum value %d", value.String(), *schema.UpperBound)}
 		}
 		return nil
 
diff --git a/apis/metal3.io/v1alpha1/zz_generated.deepcopy.go b/apis/metal3.io/v1alpha1/zz_generated.deepcopy.go
index 3c1c673d..bee9c7b4 100644
--- a/apis/metal3.io/v1alpha1/zz_generated.deepcopy.go
+++ b/apis/metal3.io/v1alpha1/zz_generated.deepcopy.go
@@ -57,6 +57,100 @@ func (in *BMCDetails) DeepCopy() *BMCDetails {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BMCEventSubscription) DeepCopyInto(out *BMCEventSubscription) {
+	*out = *in
+	out.TypeMeta = in.TypeMeta
+	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+	in.Spec.DeepCopyInto(&out.Spec)
+	out.Status = in.Status
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCEventSubscription.
+func (in *BMCEventSubscription) DeepCopy() *BMCEventSubscription {
+	if in == nil {
+		return nil
+	}
+	out := new(BMCEventSubscription)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *BMCEventSubscription) DeepCopyObject() runtime.Object {
+	if c := in.DeepCopy(); c != nil {
+		return c
+	}
+	return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BMCEventSubscriptionList) DeepCopyInto(out *BMCEventSubscriptionList) {
+	*out = *in
+	out.TypeMeta = in.TypeMeta
+	in.ListMeta.DeepCopyInto(&out.ListMeta)
+	if in.Items != nil {
+		in, out := &in.Items, &out.Items
+		*out = make([]BMCEventSubscription, len(*in))
+		for i := range *in {
+			(*in)[i].DeepCopyInto(&(*out)[i])
+		}
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCEventSubscriptionList.
+func (in *BMCEventSubscriptionList) DeepCopy() *BMCEventSubscriptionList {
+	if in == nil {
+		return nil
+	}
+	out := new(BMCEventSubscriptionList)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *BMCEventSubscriptionList) DeepCopyObject() runtime.Object {
+	if c := in.DeepCopy(); c != nil {
+		return c
+	}
+	return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BMCEventSubscriptionSpec) DeepCopyInto(out *BMCEventSubscriptionSpec) {
+	*out = *in
+	if in.HTTPHeadersRef != nil {
+		in, out := &in.HTTPHeadersRef, &out.HTTPHeadersRef
+		*out = new(v1.SecretReference)
+		**out = **in
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCEventSubscriptionSpec.
+func (in *BMCEventSubscriptionSpec) DeepCopy() *BMCEventSubscriptionSpec {
+	if in == nil {
+		return nil
+	}
+	out := new(BMCEventSubscriptionSpec)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BMCEventSubscriptionStatus) DeepCopyInto(out *BMCEventSubscriptionStatus) {
+	*out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCEventSubscriptionStatus.
+func (in *BMCEventSubscriptionStatus) DeepCopy() *BMCEventSubscriptionStatus {
+	if in == nil {
+		return nil
+	}
+	out := new(BMCEventSubscriptionStatus)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *BareMetalHost) DeepCopyInto(out *BareMetalHost) {
 	*out = *in
@@ -964,6 +1058,11 @@ func (in *SettingSchema) DeepCopyInto(out *SettingSchema) {
 		*out = new(bool)
 		**out = **in
 	}
+	if in.ResetRequired != nil {
+		in, out := &in.ResetRequired, &out.ResetRequired
+		*out = new(bool)
+		**out = **in
+	}
 	if in.Unique != nil {
 		in, out := &in.Unique, &out.Unique
 		*out = new(bool)
diff --git a/config/crd/bases/metal3.io_bmceventsubscriptions.yaml b/config/crd/bases/metal3.io_bmceventsubscriptions.yaml
new file mode 100644
index 00000000..819db44e
--- /dev/null
+++ b/config/crd/bases/metal3.io_bmceventsubscriptions.yaml
@@ -0,0 +1,90 @@
+
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    controller-gen.kubebuilder.io/version: v0.6.2
+  creationTimestamp: null
+  name: bmceventsubscriptions.metal3.io
+spec:
+  group: metal3.io
+  names:
+    kind: BMCEventSubscription
+    listKind: BMCEventSubscriptionList
+    plural: bmceventsubscriptions
+    shortNames:
+    - bes
+    - bmcevent
+    singular: bmceventsubscription
+  scope: Namespaced
+  versions:
+  - additionalPrinterColumns:
+    - description: The most recent error message
+      jsonPath: .status.error
+      name: Error
+      type: string
+    - description: Time duration since creation of BMCEventSubscription
+      jsonPath: .metadata.creationTimestamp
+      name: Age
+      type: date
+    name: v1alpha1
+    schema:
+      openAPIV3Schema:
+        description: BMCEventSubscription is the Schema for the fast eventing API
+        properties:
+          apiVersion:
+            description: 'APIVersion defines the versioned schema of this representation
+              of an object. Servers should convert recognized schemas to the latest
+              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+            type: string
+          kind:
+            description: 'Kind is a string value representing the REST resource this
+              object represents. Servers may infer this from the endpoint the client
+              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+            type: string
+          metadata:
+            type: object
+          spec:
+            properties:
+              context:
+                description: Arbitrary user-provided context for the event
+                type: string
+              destination:
+                description: A webhook URL to send events to
+                type: string
+              hostName:
+                description: A reference to a BareMetalHost
+                type: string
+              httpHeadersRef:
+                description: A secret containing HTTP headers which should be passed
+                  along to the Destination when making a request
+                properties:
+                  name:
+                    description: Name is unique within a namespace to reference a
+                      secret resource.
+                    type: string
+                  namespace:
+                    description: Namespace defines the space within which the secret
+                      name must be unique.
+                    type: string
+                type: object
+            type: object
+          status:
+            properties:
+              error:
+                type: string
+              subscriptionID:
+                type: string
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}
+status:
+  acceptedNames:
+    kind: ""
+    plural: ""
+  conditions: []
+  storedVersions: []
diff --git a/config/crd/bases/metal3.io_firmwareschemas.yaml b/config/crd/bases/metal3.io_firmwareschemas.yaml
index 1b012a89..362b5e69 100644
--- a/config/crd/bases/metal3.io_firmwareschemas.yaml
+++ b/config/crd/bases/metal3.io_firmwareschemas.yaml
@@ -72,6 +72,10 @@ spec:
                     read_only:
                       description: Whether or not this setting is read only.
                       type: boolean
+                    reset_required:
+                      description: Whether or not a reset is required after changing
+                        this setting.
+                      type: boolean
                     unique:
                       description: Whether or not this setting's value is unique to
                         this node, e.g. a serial number.
diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml
index 9a31c53b..edc11d77 100644
--- a/config/crd/kustomization.yaml
+++ b/config/crd/kustomization.yaml
@@ -6,6 +6,7 @@ resources:
 - bases/metal3.io_hostfirmwaresettings.yaml
 - bases/metal3.io_firmwareschemas.yaml
 - bases/metal3.io_preprovisioningimages.yaml
+- bases/metal3.io_bmceventsubscriptions.yaml
 #+kubebuilder:scaffold:crdkustomizeresource
 
 patchesStrategicMerge:
@@ -15,6 +16,7 @@ patchesStrategicMerge:
 #- patches/webhook_in_hostfirmwaresettings.yaml
 #- patches/webhook_in_firmwareschemas.yaml
 #- patches/webhook_in_preprovisioningimages.yaml
+#- patches/webhook_in_bmceventsubscriptions.yaml
 #+kubebuilder:scaffold:crdkustomizewebhookpatch
 
 # [CERTMANAGER] To enable webhook, uncomment all the sections with [CERTMANAGER] prefix.
@@ -23,6 +25,7 @@ patchesStrategicMerge:
 #- patches/cainjection_in_hostfirmwaresettings.yaml
 #- patches/cainjection_in_firmwareschemas.yaml
 #- patches/cainjection_in_preprovisioningimages.yaml
+#- patches/cainjection_in_bmceventsubscriptions.yaml
 #+kubebuilder:scaffold:crdkustomizecainjectionpatch
 
 # the following config is for teaching kustomize how to do kustomization for CRDs.
diff --git a/config/crd/patches/cainjection_in_bmceventsubscriptions.yaml b/config/crd/patches/cainjection_in_bmceventsubscriptions.yaml
new file mode 100644
index 00000000..3eca636c
--- /dev/null
+++ b/config/crd/patches/cainjection_in_bmceventsubscriptions.yaml
@@ -0,0 +1,7 @@
+# The following patch adds a directive for certmanager to inject CA into the CRD
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
+  name: bmceventsubscriptions.metal3.io
diff --git a/config/crd/patches/webhook_in_bmceventsubscriptions.yaml b/config/crd/patches/webhook_in_bmceventsubscriptions.yaml
new file mode 100644
index 00000000..f111d04f
--- /dev/null
+++ b/config/crd/patches/webhook_in_bmceventsubscriptions.yaml
@@ -0,0 +1,14 @@
+# The following patch enables a conversion webhook for the CRD
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  name: bmceventsubscriptions.metal3.io
+spec:
+  conversion:
+    strategy: Webhook
+    webhook:
+      clientConfig:
+        service:
+          namespace: system
+          name: webhook-service
+          path: /convert
diff --git a/config/rbac/bmceventsubscription_editor_role.yaml b/config/rbac/bmceventsubscription_editor_role.yaml
new file mode 100644
index 00000000..95e06b4f
--- /dev/null
+++ b/config/rbac/bmceventsubscription_editor_role.yaml
@@ -0,0 +1,24 @@
+# permissions for end users to edit bmceventsubscriptions.
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: bmceventsubscription-editor-role
+rules:
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions/status
+  verbs:
+  - get
diff --git a/config/rbac/bmceventsubscription_viewer_role.yaml b/config/rbac/bmceventsubscription_viewer_role.yaml
new file mode 100644
index 00000000..ed4941f8
--- /dev/null
+++ b/config/rbac/bmceventsubscription_viewer_role.yaml
@@ -0,0 +1,20 @@
+# permissions for end users to view bmceventsubscriptions.
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: bmceventsubscription-viewer-role
+rules:
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions/status
+  verbs:
+  - get
diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml
index a944ddaa..938a97ea 100644
--- a/config/rbac/role.yaml
+++ b/config/rbac/role.yaml
@@ -46,6 +46,26 @@ rules:
   - get
   - patch
   - update
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions/status
+  verbs:
+  - get
+  - patch
+  - update
 - apiGroups:
   - metal3.io
   resources:
diff --git a/config/render/capm3.yaml b/config/render/capm3.yaml
index 0eb818f7..d623ee77 100644
--- a/config/render/capm3.yaml
+++ b/config/render/capm3.yaml
@@ -1100,6 +1100,95 @@ status:
 ---
 apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
+metadata:
+  annotations:
+    controller-gen.kubebuilder.io/version: v0.6.2
+  creationTimestamp: null
+  name: bmceventsubscriptions.metal3.io
+spec:
+  group: metal3.io
+  names:
+    kind: BMCEventSubscription
+    listKind: BMCEventSubscriptionList
+    plural: bmceventsubscriptions
+    shortNames:
+    - bes
+    - bmcevent
+    singular: bmceventsubscription
+  scope: Namespaced
+  versions:
+  - additionalPrinterColumns:
+    - description: The most recent error message
+      jsonPath: .status.error
+      name: Error
+      type: string
+    - description: Time duration since creation of BMCEventSubscription
+      jsonPath: .metadata.creationTimestamp
+      name: Age
+      type: date
+    name: v1alpha1
+    schema:
+      openAPIV3Schema:
+        description: BMCEventSubscription is the Schema for the fast eventing API
+        properties:
+          apiVersion:
+            description: 'APIVersion defines the versioned schema of this representation
+              of an object. Servers should convert recognized schemas to the latest
+              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+            type: string
+          kind:
+            description: 'Kind is a string value representing the REST resource this
+              object represents. Servers may infer this from the endpoint the client
+              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+            type: string
+          metadata:
+            type: object
+          spec:
+            properties:
+              context:
+                description: Arbitrary user-provided context for the event
+                type: string
+              destination:
+                description: A webhook URL to send events to
+                type: string
+              hostName:
+                description: A reference to a BareMetalHost
+                type: string
+              httpHeadersRef:
+                description: A secret containing HTTP headers which should be passed
+                  along to the Destination when making a request
+                properties:
+                  name:
+                    description: Name is unique within a namespace to reference a
+                      secret resource.
+                    type: string
+                  namespace:
+                    description: Namespace defines the space within which the secret
+                      name must be unique.
+                    type: string
+                type: object
+            type: object
+          status:
+            properties:
+              error:
+                type: string
+              subscriptionID:
+                type: string
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}
+status:
+  acceptedNames:
+    kind: ""
+    plural: ""
+  conditions: []
+  storedVersions: []
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
 metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.6.2
@@ -1170,6 +1259,10 @@ spec:
                     read_only:
                       description: Whether or not this setting is read only.
                       type: boolean
+                    reset_required:
+                      description: Whether or not a reset is required after changing
+                        this setting.
+                      type: boolean
                     unique:
                       description: Whether or not this setting's value is unique to
                         this node, e.g. a serial number.
@@ -1640,6 +1733,26 @@ rules:
   - get
   - patch
   - update
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions
+  verbs:
+  - create
+  - delete
+  - get
+  - list
+  - patch
+  - update
+  - watch
+- apiGroups:
+  - metal3.io
+  resources:
+  - bmceventsubscriptions/status
+  verbs:
+  - get
+  - patch
+  - update
 - apiGroups:
   - metal3.io
   resources:
@@ -1968,3 +2081,24 @@ webhooks:
     resources:
     - baremetalhosts
   sideEffects: None
+- admissionReviewVersions:
+  - v1
+  - v1beta
+  clientConfig:
+    service:
+      name: baremetal-operator-webhook-service
+      namespace: baremetal-operator-system
+      path: /validate-metal3-io-v1alpha1-bmceventsubscription
+  failurePolicy: Fail
+  name: bmceventsubscription.metal3.io
+  rules:
+  - apiGroups:
+    - metal3.io
+    apiVersions:
+    - v1alpha1
+    operations:
+    - CREATE
+    - UPDATE
+    resources:
+    - bmceventsubscriptions
+  sideEffects: None
diff --git a/config/webhook/manifests.yaml b/config/webhook/manifests.yaml
index d39766c9..ed0e1a3c 100644
--- a/config/webhook/manifests.yaml
+++ b/config/webhook/manifests.yaml
@@ -27,3 +27,24 @@ webhooks:
     resources:
     - baremetalhosts
   sideEffects: None
+- admissionReviewVersions:
+  - v1
+  - v1beta
+  clientConfig:
+    service:
+      name: webhook-service
+      namespace: system
+      path: /validate-metal3-io-v1alpha1-bmceventsubscription
+  failurePolicy: Fail
+  name: bmceventsubscription.metal3.io
+  rules:
+  - apiGroups:
+    - metal3.io
+    apiVersions:
+    - v1alpha1
+    operations:
+    - CREATE
+    - UPDATE
+    resources:
+    - bmceventsubscriptions
+  sideEffects: None
diff --git a/controllers/metal3.io/baremetalhost_controller.go b/controllers/metal3.io/baremetalhost_controller.go
index 8eb5b399..d2256be6 100644
--- a/controllers/metal3.io/baremetalhost_controller.go
+++ b/controllers/metal3.io/baremetalhost_controller.go
@@ -95,6 +95,7 @@ func (info *reconcileInfo) publishEvent(reason, message string) {
 // Allow for managing hostfirmwaresettings and firmwareschema
 //+kubebuilder:rbac:groups=metal3.io,resources=hostfirmwaresettings,verbs=get;list;watch;create;update;patch
 //+kubebuilder:rbac:groups=metal3.io,resources=firmwareschemas,verbs=get;list;watch;create;update;patch
+//+kubebuilder:rbac:groups=metal3.io,resources=bmceventsubscriptions,verbs=get;list;watch;create;update;patch
 
 // Reconcile handles changes to BareMetalHost resources
 func (r *BareMetalHostReconciler) Reconcile(ctx context.Context, request ctrl.Request) (result ctrl.Result, err error) {
diff --git a/controllers/metal3.io/bmceventsubscription_controller.go b/controllers/metal3.io/bmceventsubscription_controller.go
new file mode 100644
index 00000000..cfe0b7f8
--- /dev/null
+++ b/controllers/metal3.io/bmceventsubscription_controller.go
@@ -0,0 +1,305 @@
+/*
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package controllers
+
+import (
+	"context"
+	"fmt"
+	"reflect"
+	"time"
+
+	"github.com/go-logr/logr"
+	"github.com/pkg/errors"
+
+	corev1 "k8s.io/api/core/v1"
+	k8serrors "k8s.io/apimachinery/pkg/api/errors"
+	"k8s.io/apimachinery/pkg/types"
+	ctrl "sigs.k8s.io/controller-runtime"
+	"sigs.k8s.io/controller-runtime/pkg/builder"
+	"sigs.k8s.io/controller-runtime/pkg/client"
+	"sigs.k8s.io/controller-runtime/pkg/event"
+	"sigs.k8s.io/controller-runtime/pkg/handler"
+	"sigs.k8s.io/controller-runtime/pkg/predicate"
+	"sigs.k8s.io/controller-runtime/pkg/source"
+
+	metal3v1alpha1 "github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1"
+	"github.com/metal3-io/baremetal-operator/pkg/provisioner"
+	"github.com/metal3-io/baremetal-operator/pkg/secretutils"
+	"github.com/metal3-io/baremetal-operator/pkg/utils"
+)
+
+const (
+	subscriptionRetryDelay = time.Minute * 10
+)
+
+type BMCEventSubscriptionReconciler struct {
+	client.Client
+	Log                logr.Logger
+	ProvisionerFactory provisioner.Factory
+	APIReader          client.Reader
+}
+
+//+kubebuilder:rbac:groups=metal3.io,resources=bmceventsubscriptions,verbs=get;list;watch;create;update;patch;delete
+//+kubebuilder:rbac:groups=metal3.io,resources=bmceventsubscriptions/status,verbs=get;update;patch
+
+func (r *BMCEventSubscriptionReconciler) Reconcile(ctx context.Context, request ctrl.Request) (result ctrl.Result, err error) {
+	reqLogger := r.Log.WithValues("bmceventsubscription", request.NamespacedName)
+	reqLogger.Info("start")
+
+	defer func() {
+		reqLogger.Info("done")
+	}()
+
+	// Fetch the BMCEventSubscription
+	subscription := &metal3v1alpha1.BMCEventSubscription{}
+	err = r.Get(ctx, request.NamespacedName, subscription)
+	if err != nil {
+		if k8serrors.IsNotFound(err) {
+			// Request object not found, could have been deleted after
+			// reconcile request.  Owned objects are automatically
+			// garbage collected. For additional cleanup logic use
+			// finalizers.  Return and don't requeue
+			return ctrl.Result{}, nil
+		}
+		// Error reading the object - requeue the request.
+		return ctrl.Result{}, errors.Wrap(err, "could not load subscription")
+	}
+
+	host := &metal3v1alpha1.BareMetalHost{}
+	namespacedHostName := types.NamespacedName{
+		Name:      subscription.Spec.HostName,
+		Namespace: request.Namespace,
+	}
+	err = r.Get(ctx, namespacedHostName, host)
+	if err != nil {
+		if k8serrors.IsNotFound(err) {
+			reqLogger.Error(err, "baremetalhost not found", "host", subscription.Spec.HostName)
+
+			message := fmt.Sprintf("baremetal host \"%s\"", subscription.Status.Error)
+			return r.handleError(ctx, subscription, err, message, true)
+		}
+		// Error reading the object - requeue the request.
+		return ctrl.Result{}, errors.Wrap(err, "could not load host data")
+	}
+
+	err = r.addFinalizer(ctx, subscription)
+
+	if err != nil {
+		return ctrl.Result{}, errors.Wrap(err, "failed add finalizer")
+	}
+
+	prov, ready, err := r.getProvisioner(request, host)
+
+	if err != nil {
+		return ctrl.Result{}, errors.Wrap(err, "failed to create provisioner")
+	}
+
+	if !ready {
+		reqLogger.Info("provisioner is not ready", "RequeueAfter:", provisionerNotReadyRetryDelay)
+		return ctrl.Result{RequeueAfter: provisionerNotReadyRetryDelay}, nil
+	}
+
+	if subscription.DeletionTimestamp.IsZero() {
+		// Not being deleted
+		if err := r.createSubscription(ctx, prov, subscription); err != nil {
+			return r.handleError(ctx, subscription, err, "failed to create a subscription", false)
+		}
+	} else {
+		// Being deleted
+		if err := r.deleteSubscription(ctx, prov, subscription); err != nil {
+			return r.handleError(ctx, subscription, err, "failed to delete a subscription", false)
+		}
+
+		return ctrl.Result{}, nil
+	}
+
+	return
+
+}
+
+func (r *BMCEventSubscriptionReconciler) handleError(ctx context.Context, subscription *metal3v1alpha1.BMCEventSubscription, e error, message string, requeue bool) (ctrl.Result, error) {
+	subscription.Status.Error = message
+	err := r.Status().Update(ctx, subscription)
+	if err != nil {
+		return ctrl.Result{}, errors.Wrap(err, "failed to update subscription status")
+	}
+
+	if requeue {
+		return ctrl.Result{RequeueAfter: subscriptionRetryDelay}, nil
+	}
+
+	return ctrl.Result{}, errors.Wrap(e, message)
+
+}
+
+func (r *BMCEventSubscriptionReconciler) addFinalizer(ctx context.Context, subscription *metal3v1alpha1.BMCEventSubscription) error {
+	reqLogger := r.Log.WithName("bmceventsubscription")
+
+	// Add a finalizer to newly created objects.
+	if subscription.DeletionTimestamp.IsZero() && !subscriptionHasFinalizer(subscription) {
+		reqLogger.Info(
+			"adding finalizer",
+			"existingFinalizers", subscription.Finalizers,
+			"newValue", metal3v1alpha1.BMCEventSubscriptionFinalizer,
+		)
+		subscription.Finalizers = append(subscription.Finalizers,
+			metal3v1alpha1.BMCEventSubscriptionFinalizer)
+		err := r.Update(ctx, subscription)
+		if err != nil {
+			return errors.Wrap(err, "failed to add finalizer")
+		}
+		return nil
+	}
+
+	return nil
+}
+
+func (r *BMCEventSubscriptionReconciler) createSubscription(ctx context.Context, prov provisioner.Provisioner, subscription *metal3v1alpha1.BMCEventSubscription) error {
+	reqLogger := r.Log.WithName("bmceventsubscription")
+
+	if subscription.Status.SubscriptionID != "" {
+		reqLogger.Info("subscription already exists")
+		return nil
+	}
+
+	headers, err := r.getHTTPHeaders(*subscription)
+
+	if err != nil {
+		reqLogger.Error(err, "failed to get http headers")
+		subscription.Status.Error = fmt.Sprintf("failed to retrieve HTTP headers secret")
+		updateErr := r.Status().Update(ctx, subscription)
+		if updateErr != nil {
+			return errors.Wrap(updateErr, "failed to update subscription status")
+		}
+		return err
+	}
+
+	if _, err := prov.AddBMCEventSubscriptionForNode(subscription, headers); err != nil {
+		return errors.Wrap(err, "failed to create subscription")
+	}
+
+	return r.Status().Update(ctx, subscription)
+}
+
+func (r *BMCEventSubscriptionReconciler) deleteSubscription(ctx context.Context, prov provisioner.Provisioner, subscription *metal3v1alpha1.BMCEventSubscription) error {
+	reqLogger := r.Log.WithName("bmceventsubscription")
+	reqLogger.Info("deleting subscription")
+
+	if subscriptionHasFinalizer(subscription) {
+		if _, err := prov.RemoveBMCEventSubscriptionForNode(*subscription); err != nil {
+			return errors.Wrap(err, "failed to remove a subscription")
+		}
+
+		// Remove finalizer to allow deletion
+		subscription.Finalizers = utils.FilterStringFromList(
+			subscription.Finalizers, metal3v1alpha1.BMCEventSubscriptionFinalizer)
+		reqLogger.Info("cleanup is complete, removed finalizer",
+			"remaining", subscription.Finalizers)
+		if err := r.Update(context.Background(), subscription); err != nil {
+			return err
+		}
+	}
+
+	return nil
+}
+
+func (r *BMCEventSubscriptionReconciler) getProvisioner(request ctrl.Request, host *metal3v1alpha1.BareMetalHost) (prov provisioner.Provisioner, ready bool, err error) {
+	reqLogger := r.Log.WithValues("bmceventsubscription", request.NamespacedName)
+
+	prov, err = r.ProvisionerFactory.NewProvisioner(provisioner.BuildHostDataNoBMC(*host), nil)
+	if err != nil {
+		return prov, ready, errors.Wrap(err, "failed to create provisioner")
+	}
+
+	ready, err = prov.IsReady()
+	if err != nil {
+		return prov, ready, errors.Wrap(err, "failed to check services availability")
+	}
+
+	if !ready {
+		reqLogger.Info("provisioner is not ready", "RequeueAfter:", provisionerNotReadyRetryDelay)
+		return prov, ready, nil
+	}
+
+	return prov, ready, nil
+}
+
+func (r *BMCEventSubscriptionReconciler) secretManager(log logr.Logger) secretutils.SecretManager {
+	return secretutils.NewSecretManager(log, r.Client, r.APIReader)
+}
+
+func (r *BMCEventSubscriptionReconciler) getHTTPHeaders(subscription metal3v1alpha1.BMCEventSubscription) ([]map[string]string, error) {
+	headers := []map[string]string{}
+
+	if subscription.Spec.HTTPHeadersRef == nil {
+		return headers, nil
+	}
+
+	secret := &corev1.Secret{}
+	secretKey := types.NamespacedName{
+		Name:      subscription.Spec.HTTPHeadersRef.Name,
+		Namespace: subscription.Spec.HTTPHeadersRef.Namespace,
+	}
+
+	err := r.Get(context.TODO(), secretKey, secret)
+
+	if err != nil {
+		return headers, err
+	}
+
+	for headerName, headerValueBytes := range secret.Data {
+		header := map[string]string{}
+		header[headerName] = string(headerValueBytes)
+		headers = append(headers, header)
+	}
+
+	return headers, err
+}
+
+func (r *BMCEventSubscriptionReconciler) updateEventHandler(e event.UpdateEvent) bool {
+	_, oldOK := e.ObjectOld.(*metal3v1alpha1.BMCEventSubscription)
+	_, newOK := e.ObjectNew.(*metal3v1alpha1.BMCEventSubscription)
+	if !(oldOK && newOK) {
+		return true
+	}
+
+	// If the update increased the resource Generation then let's process it
+	if e.ObjectNew.GetGeneration() != e.ObjectOld.GetGeneration() {
+		return true
+	}
+
+	// Discard updates that did not increase the resource Generation (such as on Status.LastUpdated), except for the finalizers or annotations
+	if reflect.DeepEqual(e.ObjectNew.GetFinalizers(), e.ObjectOld.GetFinalizers()) && reflect.DeepEqual(e.ObjectNew.GetAnnotations(), e.ObjectOld.GetAnnotations()) {
+		return false
+	}
+
+	return true
+}
+
+// SetupWithManager registers the reconciler to be run by the manager
+func (r *BMCEventSubscriptionReconciler) SetupWithManager(mgr ctrl.Manager) error {
+	return ctrl.NewControllerManagedBy(mgr).
+		For(&metal3v1alpha1.BMCEventSubscription{}).
+		WithEventFilter(predicate.Funcs{
+			UpdateFunc: r.updateEventHandler,
+		}).
+		Watches(&source.Kind{Type: &metal3v1alpha1.BareMetalHost{}}, &handler.EnqueueRequestForObject{}, builder.Predicates{}).
+		Complete(r)
+}
+
+func subscriptionHasFinalizer(subscription *metal3v1alpha1.BMCEventSubscription) bool {
+	return utils.StringInList(subscription.Finalizers, metal3v1alpha1.BMCEventSubscriptionFinalizer)
+}
diff --git a/go.mod b/go.mod
index 9733fc72..d2aac1f4 100644
--- a/go.mod
+++ b/go.mod
@@ -4,7 +4,7 @@ go 1.17
 
 require (
 	github.com/go-logr/logr v0.4.0
-	github.com/gophercloud/gophercloud v0.18.0
+	github.com/gophercloud/gophercloud v0.22.0
 	github.com/metal3-io/baremetal-operator/apis v0.0.0
 	github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.0.0
 	github.com/pkg/errors v0.9.1
diff --git a/go.sum b/go.sum
index 9ea428c2..84daba75 100644
--- a/go.sum
+++ b/go.sum
@@ -190,8 +190,8 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
 github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
 github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=
 github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
-github.com/gophercloud/gophercloud v0.18.0 h1:V6hcuMPmjXg+js9flU8T3RIHDCjV7F5CG5GD0MRhP/w=
-github.com/gophercloud/gophercloud v0.18.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
+github.com/gophercloud/gophercloud v0.22.0 h1:9lFISNLafZcecT0xUveIMt3IafexC6DIV9ek1SZdSMw=
+github.com/gophercloud/gophercloud v0.22.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
diff --git a/main.go b/main.go
index db41cb11..f49195e1 100644
--- a/main.go
+++ b/main.go
@@ -51,7 +51,6 @@ func init() {
 	_ = clientgoscheme.AddToScheme(scheme)
 
 	_ = metal3iov1alpha1.AddToScheme(scheme)
-	// +kubebuilder:scaffold:scheme
 }
 
 func printVersion() {
@@ -79,6 +78,11 @@ func setupWebhooks(mgr ctrl.Manager) {
 		setupLog.Error(err, "unable to create webhook", "webhook", "BareMetalHost")
 		os.Exit(1)
 	}
+
+	if err := (&metal3iov1alpha1.BMCEventSubscription{}).SetupWebhookWithManager(mgr); err != nil {
+		setupLog.Error(err, "unable to create webhook", "webhook", "BMCEventSubscription")
+		os.Exit(1)
+	}
 }
 
 func main() {
@@ -190,6 +194,15 @@ func main() {
 		os.Exit(1)
 	}
 
+	if err = (&metal3iocontroller.BMCEventSubscriptionReconciler{
+		Client:             mgr.GetClient(),
+		Log:                ctrl.Log.WithName("controllers").WithName("BMCEventSubscription"),
+		ProvisionerFactory: provisionerFactory,
+	}).SetupWithManager(mgr); err != nil {
+		setupLog.Error(err, "unable to create controller", "controller", "BMCEventSubscription")
+		os.Exit(1)
+	}
+
 	setupChecks(mgr)
 
 	if enableWebhook {
diff --git a/pkg/provisioner/demo/demo.go b/pkg/provisioner/demo/demo.go
index d7e6e6e9..fa57a83a 100644
--- a/pkg/provisioner/demo/demo.go
+++ b/pkg/provisioner/demo/demo.go
@@ -359,3 +359,11 @@ func (p *demoProvisioner) GetFirmwareSettings(includeSchema bool) (settings meta
 	p.log.Info("getting BIOS settings")
 	return
 }
+
+func (p *demoProvisioner) AddBMCEventSubscriptionForNode(subscription *metal3v1alpha1.BMCEventSubscription, httpHeaders provisioner.HTTPHeaders) (result provisioner.Result, err error) {
+	return result, nil
+}
+
+func (p *demoProvisioner) RemoveBMCEventSubscriptionForNode(subscription metal3v1alpha1.BMCEventSubscription) (result provisioner.Result, err error) {
+	return result, nil
+}
diff --git a/pkg/provisioner/fixture/fixture.go b/pkg/provisioner/fixture/fixture.go
index c6e09d25..c3d0f8fc 100644
--- a/pkg/provisioner/fixture/fixture.go
+++ b/pkg/provisioner/fixture/fixture.go
@@ -340,3 +340,11 @@ func (p *fixtureProvisioner) GetFirmwareSettings(includeSchema bool) (settings m
 	p.log.Info("getting BIOS settings")
 	return
 }
+
+func (p *fixtureProvisioner) AddBMCEventSubscriptionForNode(subscription *metal3v1alpha1.BMCEventSubscription, httpHeaders provisioner.HTTPHeaders) (result provisioner.Result, err error) {
+	return result, nil
+}
+
+func (p *fixtureProvisioner) RemoveBMCEventSubscriptionForNode(subscription metal3v1alpha1.BMCEventSubscription) (result provisioner.Result, err error) {
+	return result, nil
+}
diff --git a/pkg/provisioner/ironic/ironic.go b/pkg/provisioner/ironic/ironic.go
index 552e3d05..b0e62f00 100644
--- a/pkg/provisioner/ironic/ironic.go
+++ b/pkg/provisioner/ironic/ironic.go
@@ -27,6 +27,7 @@ var (
 	deprovisionRequeueDelay   = time.Second * 10
 	provisionRequeueDelay     = time.Second * 10
 	powerRequeueDelay         = time.Second * 10
+	subscriptionRequeueDelay  = time.Second * 10
 	introspectionRequeueDelay = time.Second * 15
 	softPowerOffTimeout       = time.Second * 180
 )
@@ -971,6 +972,7 @@ func (p *ironicProvisioner) GetFirmwareSettings(includeSchema bool) (settings me
 				MinLength:       v.MinLength,
 				MaxLength:       v.MaxLength,
 				ReadOnly:        v.ReadOnly,
+				ResetRequired:   v.ResetRequired,
 				Unique:          v.Unique,
 			}
 		}
@@ -1870,3 +1872,38 @@ func (p *ironicProvisioner) loadBusyHosts() (hosts map[string]struct{}, err erro
 
 	return hosts, nil
 }
+
+func (p *ironicProvisioner) AddBMCEventSubscriptionForNode(subscription *metal3v1alpha1.BMCEventSubscription, httpHeaders provisioner.HTTPHeaders) (result provisioner.Result, err error) {
+	newSubscription, err := nodes.CreateSubscription(
+		p.client,
+		p.nodeID,
+		nodes.CallVendorPassthruOpts{
+			Method: "create_subscription",
+		},
+		nodes.CreateSubscriptionOpts{
+			Destination: subscription.Spec.Destination,
+			Context:     subscription.Spec.Context,
+			HttpHeaders: httpHeaders,
+		}).Extract()
+	if err != nil {
+		return provisioner.Result{}, err
+	}
+
+	subscription.Status.SubscriptionID = newSubscription.Id
+	return operationComplete()
+}
+
+func (p *ironicProvisioner) RemoveBMCEventSubscriptionForNode(subscription metal3v1alpha1.BMCEventSubscription) (result provisioner.Result, err error) {
+	method := nodes.CallVendorPassthruOpts{
+		Method: "delete_subscription",
+	}
+	opts := nodes.DeleteSubscriptionOpts{
+		Id: subscription.Status.SubscriptionID,
+	}
+	err = nodes.DeleteSubscription(p.client, p.nodeID, method, opts).ExtractErr()
+
+	if err != nil {
+		return provisioner.Result{RequeueAfter: subscriptionRequeueDelay}, err
+	}
+	return operationComplete()
+}
diff --git a/pkg/provisioner/provisioner.go b/pkg/provisioner/provisioner.go
index 4c6f402c..e150198c 100644
--- a/pkg/provisioner/provisioner.go
+++ b/pkg/provisioner/provisioner.go
@@ -113,6 +113,8 @@ type ProvisionData struct {
 	CustomDeploy    *metal3v1alpha1.CustomDeploy
 }
 
+type HTTPHeaders []map[string]string
+
 // Provisioner holds the state information for talking to the
 // provisioning backend.
 type Provisioner interface {
@@ -188,6 +190,12 @@ type Provisioner interface {
 
 	// GetFirmwareSettings gets the BIOS settings and optional schema from the host and returns maps
 	GetFirmwareSettings(includeSchema bool) (settings metal3v1alpha1.SettingsMap, schema map[string]metal3v1alpha1.SettingSchema, err error)
+
+	// AddBMCEventSubscriptionForNode creates the subscription, and updates Status.SubscriptionID
+	AddBMCEventSubscriptionForNode(subscription *metal3v1alpha1.BMCEventSubscription, httpHeaders HTTPHeaders) (result Result, err error)
+
+	// RemoveBMCEventSubscriptionForNode delete the subscription
+	RemoveBMCEventSubscriptionForNode(subscription metal3v1alpha1.BMCEventSubscription) (result Result, err error)
 }
 
 // Result holds the response from a call in the Provsioner API.


Test patch:
diff --git a/apis/metal3.io/v1alpha1/bmceventsubscription_validation_test.go b/apis/metal3.io/v1alpha1/bmceventsubscription_validation_test.go
new file mode 100644
index 00000000..712f53d4
--- /dev/null
+++ b/apis/metal3.io/v1alpha1/bmceventsubscription_validation_test.go
@@ -0,0 +1,81 @@
+package v1alpha1
+
+import (
+	"testing"
+
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+func TestBMCEventSubscriptionValidateCreate(t *testing.T) {
+	tm := metav1.TypeMeta{
+		Kind:       "BMCEventSubscription",
+		APIVersion: "metal3.io/v1alpha1",
+	}
+
+	om := metav1.ObjectMeta{
+		Name:      "test",
+		Namespace: "test-namespace",
+	}
+
+	tests := []struct {
+		name      string
+		newS      *BMCEventSubscription
+		oldS      *BMCEventSubscription
+		wantedErr string
+	}{
+		{
+			name:      "valid",
+			newS:      &BMCEventSubscription{TypeMeta: tm, ObjectMeta: om, Spec: BMCEventSubscriptionSpec{HostName: "worker-01", Destination: "http://localhost/abc/abc.php"}},
+			oldS:      nil,
+			wantedErr: "",
+		},
+		{
+			name: "missingHostName",
+			newS: &BMCEventSubscription{
+				TypeMeta:   tm,
+				ObjectMeta: om,
+				Spec:       BMCEventSubscriptionSpec{Destination: "http://localhost/abc/abc"},
+			},
+			oldS:      nil,
+			wantedErr: "HostName cannot be empty",
+		},
+		{
+			name: "missingDestination",
+			newS: &BMCEventSubscription{
+				TypeMeta:   tm,
+				ObjectMeta: om,
+				Spec:       BMCEventSubscriptionSpec{HostName: "worker-01"},
+			},
+			oldS:      nil,
+			wantedErr: "Destination cannot be empty",
+		},
+		{
+			name: "destinationNotUrl",
+			newS: &BMCEventSubscription{
+				TypeMeta:   tm,
+				ObjectMeta: om,
+				Spec:       BMCEventSubscriptionSpec{HostName: "worker-01", Destination: "abc"},
+			},
+			oldS:      nil,
+			wantedErr: "Destination is an invalid URL: parse \"abc\": invalid URI for request",
+		},
+		{
+			name: "destinationMissingTrailingSlash",
+			newS: &BMCEventSubscription{
+				TypeMeta:   tm,
+				ObjectMeta: om,
+				Spec:       BMCEventSubscriptionSpec{HostName: "worker-01", Destination: "http://localhost"},
+			},
+			oldS:      nil,
+			wantedErr: "Hostname-only destination must have a trailing slash",
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			if err := tt.newS.validateSubscription(); !errorArrContains(err, tt.wantedErr) {
+				t.Errorf("BareMetalHost.validateSubscription() error = %v, wantErr %v", err, tt.wantedErr)
+			}
+		})
+	}
+}
diff --git a/controllers/metal3.io/host_state_machine_test.go b/controllers/metal3.io/host_state_machine_test.go
index 20e30f4f..050ab897 100644
--- a/controllers/metal3.io/host_state_machine_test.go
+++ b/controllers/metal3.io/host_state_machine_test.go
@@ -1280,6 +1280,14 @@ func (m *mockProvisioner) GetFirmwareSettings(includeSchema bool) (settings meta
 	return
 }
 
+func (m *mockProvisioner) AddBMCEventSubscriptionForNode(subscription *metal3v1alpha1.BMCEventSubscription, httpHeaders provisioner.HTTPHeaders) (result provisioner.Result, err error) {
+	return result, nil
+}
+
+func (m *mockProvisioner) RemoveBMCEventSubscriptionForNode(subscription metal3v1alpha1.BMCEventSubscription) (result provisioner.Result, err error) {
+	return result, nil
+}
+
 func TestUpdateBootModeStatus(t *testing.T) {
 	testCases := []struct {
 		Scenario       string
diff --git a/controllers/metal3.io/hostfirmwaresettings_test.go b/controllers/metal3.io/hostfirmwaresettings_test.go
index a296100f..23035504 100644
--- a/controllers/metal3.io/hostfirmwaresettings_test.go
+++ b/controllers/metal3.io/hostfirmwaresettings_test.go
@@ -116,6 +116,14 @@ func (m *hsfMockProvisioner) GetFirmwareSettings(includeSchema bool) (settings m
 	return m.Settings, m.Schema, m.Error
 }
 
+func (m *hsfMockProvisioner) AddBMCEventSubscriptionForNode(subscription *metal3v1alpha1.BMCEventSubscription, httpHeaders provisioner.HTTPHeaders) (result provisioner.Result, err error) {
+	return result, nil
+}
+
+func (m *hsfMockProvisioner) RemoveBMCEventSubscriptionForNode(subscription metal3v1alpha1.BMCEventSubscription) (result provisioner.Result, err error) {
+	return result, nil
+}
+
 func getSchema() *metal3v1alpha1.FirmwareSchema {
 
 	schema := &metal3v1alpha1.FirmwareSchema{
@@ -435,7 +443,7 @@ func TestStoreHostFirmwareSettings(t *testing.T) {
 					ResourceVersion: "1"},
 				Spec: metal3v1alpha1.HostFirmwareSettingsSpec{
 					Settings: metal3v1alpha1.DesiredSettingsMap{
-						"NetworkBootRetryCount": intstr.FromInt(1000),
+						"NetworkBootRetryCount": intstr.FromString("1000"),
 						"ProcVirtualization":    intstr.FromString("Enabled"),
 					},
 				},
@@ -455,7 +463,7 @@ func TestStoreHostFirmwareSettings(t *testing.T) {
 			ExpectedSettings: &metal3v1alpha1.HostFirmwareSettings{
 				Spec: metal3v1alpha1.HostFirmwareSettingsSpec{
 					Settings: metal3v1alpha1.DesiredSettingsMap{
-						"NetworkBootRetryCount": intstr.FromInt(1000),
+						"NetworkBootRetryCount": intstr.FromString("1000"),
 						"ProcVirtualization":    intstr.FromString("Enabled"),
 					},
 				},
@@ -567,7 +575,7 @@ func TestValidateHostFirmwareSettings(t *testing.T) {
 				Settings: metal3v1alpha1.DesiredSettingsMap{
 					"CustomPostMessage":     intstr.FromString("All tests passed"),
 					"ProcVirtualization":    intstr.FromString("Disabled"),
-					"NetworkBootRetryCount": intstr.FromInt(20),
+					"NetworkBootRetryCount": intstr.FromString("20"),
 				},
 			},
 			ExpectedError: "",
@@ -578,7 +586,7 @@ func TestValidateHostFirmwareSettings(t *testing.T) {
 				Settings: metal3v1alpha1.DesiredSettingsMap{
 					"CustomPostMessage":     intstr.FromString("A really long POST message"),
 					"ProcVirtualization":    intstr.FromString("Disabled"),
-					"NetworkBootRetryCount": intstr.FromInt(20),
+					"NetworkBootRetryCount": intstr.FromString("20"),
 				},
 			},
 			ExpectedError: "Setting CustomPostMessage is invalid, string A really long POST message length is above maximum length 20",
@@ -626,17 +634,6 @@ func TestValidateHostFirmwareSettings(t *testing.T) {
 			},
 			ExpectedError: "Cannot set Password field",
 		},
-		{
-			Scenario: "string instead of int",
-			SpecSettings: metal3v1alpha1.HostFirmwareSettingsSpec{
-				Settings: metal3v1alpha1.DesiredSettingsMap{
-					"CustomPostMessage":     intstr.FromString("All tests passed"),
-					"ProcVirtualization":    intstr.FromString("Disabled"),
-					"NetworkBootRetryCount": intstr.FromString("foo"),
-				},
-			},
-			ExpectedError: "Setting NetworkBootRetryCount is invalid, String foo entered while integer expected",
-		},
 	}
 
 	for _, tc := range testCases {
diff --git a/pkg/provisioner/ironic/bios_test.go b/pkg/provisioner/ironic/bios_test.go
index 7e773a06..a26f2aab 100644
--- a/pkg/provisioner/ironic/bios_test.go
+++ b/pkg/provisioner/ironic/bios_test.go
@@ -57,6 +57,7 @@ func TestGetFirmwareSettings(t *testing.T) {
 					MinLength:       &minLength,
 					MaxLength:       &maxLength,
 					ReadOnly:        &iTrue,
+					ResetRequired:   nil,
 					Unique:          nil,
 				},
 				"NumCores": {
@@ -67,6 +68,7 @@ func TestGetFirmwareSettings(t *testing.T) {
 					MinLength:       nil,
 					MaxLength:       nil,
 					ReadOnly:        &iTrue,
+					ResetRequired:   nil,
 					Unique:          nil,
 				},
 				"ProcVirtualization": {
@@ -77,6 +79,7 @@ func TestGetFirmwareSettings(t *testing.T) {
 					MinLength:       nil,
 					MaxLength:       nil,
 					ReadOnly:        &iFalse,
+					ResetRequired:   nil,
 					Unique:          nil,
 				},
 			},
diff --git a/pkg/provisioner/ironic/validatemanagementaccess_test.go b/pkg/provisioner/ironic/validatemanagementaccess_test.go
index c82beea2..d4e5924e 100644
--- a/pkg/provisioner/ironic/validatemanagementaccess_test.go
+++ b/pkg/provisioner/ironic/validatemanagementaccess_test.go
@@ -1,6 +1,7 @@
 package ironic
 
 import (
+	"fmt"
 	"net/http"
 	"testing"
 
@@ -638,7 +639,9 @@ func TestValidateManagementAccessExistingPortWithWrongUUID(t *testing.T) {
 	}
 
 	_, _, err = prov.ValidateManagementAccess(provisioner.ManagementAccessData{}, false, false)
-	assert.EqualError(t, err, "failed to find existing host: port 11:11:11:11:11:11 exists but linked node doesn't random-wrong-id: Resource not found")
+	endpoint := ironic.MockServer.Endpoint()
+	expected := fmt.Sprintf("failed to find existing host: port 11:11:11:11:11:11 exists but linked node doesn't random-wrong-id: Resource not found: [GET %snodes/random-wrong-id], error message: ", endpoint)
+	assert.EqualError(t, err, expected)
 }
 
 func TestValidateManagementAccessExistingPortButHasName(t *testing.T) {