Repository: kubermatic/machine-controller
Pull request #1252 (2022-04-14 15:15:42)

Expose google provisioning model to be able to acquire spot instances
Signed-off-by: Tomas Lamr <tomas@lamr.org>

**What this PR does / why we need it**:
Hello, we wanted to expose node selection API from google (SPOT/STANDARD) so that we can create a node pool of spot instances as in was.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Optional Release Note**:
<!--
Write your release note:
1. Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required".
2. If no release note is required, just write "NONE".
-->
```release-note
Support for specifying provisioning model for instances on GCE
```

kubermatic-bot: @tlamr: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our [release note process](https://git.k8s.io/community/contributors/guide/release-notes.md) to remove it.

<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>
kubermatic-bot: Hi @tlamr. Thanks for your PR.

I'm waiting for a [kubermatic](https://github.com/orgs/kubermatic/people) member to verify that this patch is reasonable to test. If it is, they should reply with `/ok-to-test` on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should [join the org](https://github.com/orgs/kubermatic/people) to skip this step.

Once the patch is verified, the new status will be reflected by the `ok-to-test` label.

I understand the commands that are listed [here](https://go.k8s.io/bot-commands?repo=kubermatic%2Fmachine-controller).

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

tlamr: Difference between preemptible and spot according to them:

However, Spot VMs provide new features that are not supported for preemptible VMs. For example, preemptible VMs can only run for up to 24 hours at a time, but Spot VMs do not have a maximum runtime. This page describes preemptible virtual machine (VM) instances.

ahmedwaleedmalik: /ok-to-test
/hold
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`
pull-machine-controller-e2e-azure | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514635659766140928) | true | `/test pull-machine-controller-e2e-azure`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`
pull-machine-controller-e2e-azure | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514635659766140928) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-custom-ca | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-custom-ca/1514635655085297664) | true | `/test pull-machine-controller-e2e-custom-ca`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`
pull-machine-controller-e2e-azure | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514635659766140928) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-custom-ca | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-custom-ca/1514635655085297664) | true | `/test pull-machine-controller-e2e-custom-ca`
pull-machine-controller-e2e-aws-flatcar-containerd | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-flatcar-containerd/1514635667106172928) | true | `/test pull-machine-controller-e2e-aws-flatcar-containerd`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`
pull-machine-controller-e2e-azure | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514635659766140928) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-custom-ca | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-custom-ca/1514635655085297664) | true | `/test pull-machine-controller-e2e-custom-ca`
pull-machine-controller-e2e-aws-flatcar-containerd | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-flatcar-containerd/1514635667106172928) | true | `/test pull-machine-controller-e2e-aws-flatcar-containerd`
pull-machine-controller-e2e-hetzner | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514635662278529024) | true | `/test pull-machine-controller-e2e-hetzner`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`
pull-machine-controller-e2e-azure | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514635659766140928) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-custom-ca | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-custom-ca/1514635655085297664) | true | `/test pull-machine-controller-e2e-custom-ca`
pull-machine-controller-e2e-aws-flatcar-containerd | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-flatcar-containerd/1514635667106172928) | true | `/test pull-machine-controller-e2e-aws-flatcar-containerd`
pull-machine-controller-e2e-hetzner | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514635662278529024) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-aws-spot-instance | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-spot-instance/1514635667953422336) | true | `/test pull-machine-controller-e2e-aws-spot-instance`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-lint | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120) | true | `/test pull-machine-controller-lint`
pull-machine-controller-e2e-invalid-objects-get-rejected | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-invalid-objects-get-rejected/1514635654997217280) | true | `/test pull-machine-controller-e2e-invalid-objects-get-rejected`
pull-machine-controller-e2e-azure | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514635659766140928) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-custom-ca | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-custom-ca/1514635655085297664) | true | `/test pull-machine-controller-e2e-custom-ca`
pull-machine-controller-e2e-aws-flatcar-containerd | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-flatcar-containerd/1514635667106172928) | true | `/test pull-machine-controller-e2e-aws-flatcar-containerd`
pull-machine-controller-e2e-hetzner | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514635662278529024) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-aws-spot-instance | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-spot-instance/1514635667953422336) | true | `/test pull-machine-controller-e2e-aws-spot-instance`
pull-machine-controller-e2e-ubuntu-upgrade | f2ece19890199454fb45d99d0ee4a046fa52e553 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-ubuntu-upgrade/1514635664589590528) | true | `/test pull-machine-controller-e2e-ubuntu-upgrade`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
ahmedwaleedmalik: @tlamr can you please look into the failing CI jobs?
tlamr: Hello @ahmedwaleedmalik, I'm not an expert but I can see 20x this error and then it seems to give up.
`Error: network limit reached (resource_limit_exceeded)

  with hcloud_network.net,
  on hetzner.tf line 10, in resource "hcloud_network" "net":
  10: resource "hcloud_network" "net" {
...
Creating cloud provider env failed!
Cleaning up machines.`
ahmedwaleedmalik: > Error: network limit reached (resource_limit_exceeded)

This is unrelated to your PR. I'll take care of this issue. 

Meanwhile can you check the logs for https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-lint/1514635654829445120
kubermatic-bot: Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.

:memo: **Please follow instructions in the [contributing guide](https://github.com/kubermatic/machine-controller/blob/master/CONTRIBUTING.md) to update your commits with the DCO**

Full details of the Developer Certificate of Origin can be found at [developercertificate.org](https://developercertificate.org/).

**The list of commits missing DCO signoff**:

- [d3227fb](https://github.com/kubermatic/machine-controller/commits/d3227fb48e5bd7fc37f625f95390bfbbba959dcc) reformat sources

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

kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-gce | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1514672529258582016) | true | `/test pull-machine-controller-e2e-gce`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-gce | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1514672529258582016) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-digitalocean | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-digitalocean/1514672526700056576) | true | `/test pull-machine-controller-e2e-digitalocean`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-gce | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1514672529258582016) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-digitalocean | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-digitalocean/1514672526700056576) | true | `/test pull-machine-controller-e2e-digitalocean`
pull-machine-controller-e2e-azure | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514672527538917376) | true | `/test pull-machine-controller-e2e-azure`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-gce | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1514672529258582016) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-digitalocean | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-digitalocean/1514672526700056576) | true | `/test pull-machine-controller-e2e-digitalocean`
pull-machine-controller-e2e-azure | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514672527538917376) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-openstack | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack/1514672523365584896) | true | `/test pull-machine-controller-e2e-openstack`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-gce | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1514672529258582016) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-digitalocean | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-digitalocean/1514672526700056576) | true | `/test pull-machine-controller-e2e-digitalocean`
pull-machine-controller-e2e-azure | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514672527538917376) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-openstack | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack/1514672523365584896) | true | `/test pull-machine-controller-e2e-openstack`
pull-machine-controller-e2e-azure-custom-image-reference | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1514672528428109824) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-vsphere | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-vsphere/1514672530932109312) | true | `/test pull-machine-controller-e2e-vsphere`
pull-machine-controller-e2e-openstack-project-auth | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack-project-auth/1514672524187668480) | true | `/test pull-machine-controller-e2e-openstack-project-auth`
pull-machine-controller-e2e-hetzner | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-hetzner/1514672530105831424) | true | `/test pull-machine-controller-e2e-hetzner`
pull-machine-controller-e2e-gce | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1514672529258582016) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-digitalocean | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-digitalocean/1514672526700056576) | true | `/test pull-machine-controller-e2e-digitalocean`
pull-machine-controller-e2e-azure | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514672527538917376) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-openstack | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack/1514672523365584896) | true | `/test pull-machine-controller-e2e-openstack`
pull-machine-controller-e2e-azure-custom-image-reference | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1514672528428109824) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`
pull-machine-controller-e2e-aws-arm | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-arm/1514672525861195776) | true | `/test pull-machine-controller-e2e-aws-arm`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
ahmedwaleedmalik: /test pull-machine-controller-e2e-aws-arm
ahmedwaleedmalik: /retest
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-azure | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514672527538917376) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-azure-custom-image-reference | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1514884824572104704) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-azure-custom-image-reference | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1514884824572104704) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`
pull-machine-controller-e2e-azure | 16a06545877bbdc87b3d6bf6848c10c7d92c4082 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1514884824525967360) | true | `/test pull-machine-controller-e2e-azure`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
ahmedwaleedmalik: @tlamr I have updated the description of your PR and made it compliant with the required template. 
kubermatic-bot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubermatic/machine-controller/pull/1252#" title="Author self-approved">tlamr</a>*
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please ask for approval from **ahmedwaleedmalik** after the PR has been reviewed.

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

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

- **[pkg/cloudprovider/provider/OWNERS](https://github.com/kubermatic/machine-controller/blob/master/pkg/cloudprovider/provider/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":["ahmedwaleedmalik"]} -->
kubermatic-bot: Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.

:memo: **Please follow instructions in the [contributing guide](https://github.com/kubermatic/machine-controller/blob/master/CONTRIBUTING.md) to update your commits with the DCO**

Full details of the Developer Certificate of Origin can be found at [developercertificate.org](https://developercertificate.org/).

**The list of commits missing DCO signoff**:

- [1eda86a](https://github.com/kubermatic/machine-controller/commits/1eda86a24146f79c0adf4f47b3912f3d8470fd26) Make automaticRestart and provisioningModel Optional in pkg/cloudprovider/provider/gce/types/types.go

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

kubermatic-bot: Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.

:memo: **Please follow instructions in the [contributing guide](https://github.com/kubermatic/machine-controller/blob/master/CONTRIBUTING.md) to update your commits with the DCO**

Full details of the Developer Certificate of Origin can be found at [developercertificate.org](https://developercertificate.org/).

**The list of commits missing DCO signoff**:

- [1eda86a](https://github.com/kubermatic/machine-controller/commits/1eda86a24146f79c0adf4f47b3912f3d8470fd26) Make automaticRestart and provisioningModel Optional in pkg/cloudprovider/provider/gce/types/types.go

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

tlamr: @ahmedwaleedmalik Awesome, thank you! :)
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-gce | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1515042626854719488) | true | `/test pull-machine-controller-e2e-gce`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-gce | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1515042626854719488) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-azure-custom-image-reference | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1515042625512542208) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-gce | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1515042626854719488) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-azure-custom-image-reference | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1515042625512542208) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`
pull-machine-controller-e2e-azure | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1515042624619155456) | true | `/test pull-machine-controller-e2e-azure`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-gce | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1515042626854719488) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-azure-custom-image-reference | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1515042625512542208) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`
pull-machine-controller-e2e-azure | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1515042624619155456) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-ubuntu-upgrade | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-ubuntu-upgrade/1515042629383884800) | true | `/test pull-machine-controller-e2e-ubuntu-upgrade`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-gce | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1515042626854719488) | true | `/test pull-machine-controller-e2e-gce`
pull-machine-controller-e2e-azure-custom-image-reference | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure-custom-image-reference/1515042625512542208) | true | `/test pull-machine-controller-e2e-azure-custom-image-reference`
pull-machine-controller-e2e-azure | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-azure/1515042624619155456) | true | `/test pull-machine-controller-e2e-azure`
pull-machine-controller-e2e-ubuntu-upgrade | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-ubuntu-upgrade/1515042629383884800) | true | `/test pull-machine-controller-e2e-ubuntu-upgrade`
pull-machine-controller-e2e-openstack | 59b2e0db7033e030b188f9a5f985cb5f764c447a | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-openstack/1515042620429045760) | true | `/test pull-machine-controller-e2e-openstack`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-aws-ebs-encryption-enabled | 64a5cf554ca38ce1e9d4c87b30d197161936e925 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-ebs-encryption-enabled/1516504279198732288) | true | `/test pull-machine-controller-e2e-aws-ebs-encryption-enabled`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

<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 -->
kubermatic-bot: @tlamr: 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
--- | --- | --- | --- | ---
pull-machine-controller-e2e-aws-ebs-encryption-enabled | 64a5cf554ca38ce1e9d4c87b30d197161936e925 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-aws-ebs-encryption-enabled/1516504279198732288) | true | `/test pull-machine-controller-e2e-aws-ebs-encryption-enabled`
pull-machine-controller-e2e-gce | 64a5cf554ca38ce1e9d4c87b30d197161936e925 | [link](https://public-prow.loodse.com/view/gs/prow-dev-public-data/pr-logs/pull/kubermatic_machine-controller/1252/pull-machine-controller-e2e-gce/1516504274379476992) | true | `/test pull-machine-controller-e2e-gce`

[Full PR test history](https://public-prow.loodse.com/pr-history?org=kubermatic&repo=machine-controller&pr=1252)

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

Patch:
diff --git a/pkg/cloudprovider/provider/aws/provider.go b/pkg/cloudprovider/provider/aws/provider.go
index 9db3cdd0..b2528c0a 100644
--- a/pkg/cloudprovider/provider/aws/provider.go
+++ b/pkg/cloudprovider/provider/aws/provider.go
@@ -617,7 +617,7 @@ func (p *provider) Validate(spec clusterv1alpha1.MachineSpec) error {
 		return fmt.Errorf("invalid vpc %q specified: %v", config.VpcID, err)
 	}
 
-	switch f := pc.Network.GetNetworkFamily(); f {
+	switch f := pc.Network.GetIPFamily(); f {
 	case util.Unspecified, util.IPv4:
 		// noop
 	case util.IPv6, util.DualStack:
@@ -823,7 +823,7 @@ func (p *provider) Create(machine *clusterv1alpha1.Machine, data *cloudprovidert
 		},
 	}
 
-	if pc.Network.GetNetworkFamily() == util.IPv6 || pc.Network.GetNetworkFamily() == util.DualStack {
+	if pc.Network.GetIPFamily() == util.IPv6 || pc.Network.GetIPFamily() == util.DualStack {
 		instanceRequest.NetworkInterfaces[0].Ipv6AddressCount = aws.Int64(1)
 	}
 
diff --git a/pkg/cloudprovider/provider/azure/create_delete_resources.go b/pkg/cloudprovider/provider/azure/create_delete_resources.go
index 355b2509..45248e1b 100644
--- a/pkg/cloudprovider/provider/azure/create_delete_resources.go
+++ b/pkg/cloudprovider/provider/azure/create_delete_resources.go
@@ -319,7 +319,7 @@ func getVirtualNetwork(ctx context.Context, c *config) (network.VirtualNetwork,
 	return virtualNetworksClient.Get(ctx, c.VNetResourceGroup, c.VNetName, "")
 }
 
-func createOrUpdateNetworkInterface(ctx context.Context, ifName string, machineUID types.UID, config *config, publicIP, publicIPv6 *network.PublicIPAddress, netFamily util.NetworkFamily) (*network.Interface, error) {
+func createOrUpdateNetworkInterface(ctx context.Context, ifName string, machineUID types.UID, config *config, publicIP, publicIPv6 *network.PublicIPAddress, ipFamily util.IPFamily) (*network.Interface, error) {
 	ifClient, err := getInterfacesClient(config)
 	if err != nil {
 		return nil, fmt.Errorf("failed to create interfaces client: %v", err)
@@ -349,7 +349,7 @@ func createOrUpdateNetworkInterface(ctx context.Context, ifName string, machineU
 		},
 	})
 
-	if netFamily == util.DualStack {
+	if ipFamily == util.DualStack {
 		*ifSpec.InterfacePropertiesFormat.IPConfigurations = append(*ifSpec.InterfacePropertiesFormat.IPConfigurations, network.InterfaceIPConfiguration{
 			Name: to.StringPtr("ip-config-2"),
 			InterfaceIPConfigurationPropertiesFormat: &network.InterfaceIPConfigurationPropertiesFormat{
diff --git a/pkg/cloudprovider/provider/azure/provider.go b/pkg/cloudprovider/provider/azure/provider.go
index ccc1dfd8..949d65ef 100644
--- a/pkg/cloudprovider/provider/azure/provider.go
+++ b/pkg/cloudprovider/provider/azure/provider.go
@@ -572,9 +572,9 @@ func (p *provider) Create(machine *clusterv1alpha1.Machine, data *cloudprovidert
 		return nil, fmt.Errorf("failed to generate ssh key: %v", err)
 	}
 
-	netFamily := providerCfg.Network.GetNetworkFamily()
+	ipFamily := providerCfg.Network.GetIPFamily()
 	sku := network.PublicIPAddressSkuNameBasic
-	if netFamily == util.DualStack {
+	if ipFamily == util.DualStack {
 		// 1. Cannot specify basic sku PublicIp for an IPv6 network interface ipConfiguration.
 		// 2. Different basic sku and standard sku public Ip resources in availability set is not allowed.
 		// 1 & 2 means we have to use standard sku in dual-stack configuration.
@@ -598,7 +598,7 @@ func (p *provider) Create(machine *clusterv1alpha1.Machine, data *cloudprovidert
 			return nil, fmt.Errorf("failed to create public IP: %v", err)
 		}
 
-		if netFamily == util.DualStack {
+		if ipFamily == util.DualStack {
 			publicIPv6, err = createOrUpdatePublicIPAddress(context.TODO(), publicIPv6Name(ifaceName(machine)), network.IPVersionIPv6, sku, network.IPAllocationMethodStatic, machine.UID, config)
 			if err != nil {
 				return nil, fmt.Errorf("failed to create public IP: %v", err)
@@ -614,7 +614,7 @@ func (p *provider) Create(machine *clusterv1alpha1.Machine, data *cloudprovidert
 		return nil, err
 	}
 
-	iface, err := createOrUpdateNetworkInterface(context.TODO(), ifaceName(machine), machine.UID, config, publicIP, publicIPv6, netFamily)
+	iface, err := createOrUpdateNetworkInterface(context.TODO(), ifaceName(machine), machine.UID, config, publicIP, publicIPv6, ipFamily)
 	if err != nil {
 		return nil, fmt.Errorf("failed to generate main network interface: %v", err)
 	}
@@ -1013,7 +1013,7 @@ func (p *provider) Validate(spec clusterv1alpha1.MachineSpec) error {
 		return errors.New("subnetName is missing")
 	}
 
-	switch f := providerConfig.Network.GetNetworkFamily(); f {
+	switch f := providerConfig.Network.GetIPFamily(); f {
 	case util.Unspecified, util.IPv4:
 		//noop
 	case util.IPv6:
diff --git a/pkg/cloudprovider/provider/gce/config.go b/pkg/cloudprovider/provider/gce/config.go
index 6befe983..00e54440 100644
--- a/pkg/cloudprovider/provider/gce/config.go
+++ b/pkg/cloudprovider/provider/gce/config.go
@@ -101,6 +101,8 @@ type config struct {
 	network               string
 	subnetwork            string
 	preemptible           bool
+	automaticRestart      *bool
+	provisioningModel     *string
 	labels                map[string]string
 	tags                  []string
 	jwtConfig             *jwt.Config
@@ -167,6 +169,26 @@ func newConfig(resolver *providerconfig.ConfigVarResolver, spec v1alpha1.Provide
 		return nil, fmt.Errorf("cannot retrieve preemptible: %v", err)
 	}
 
+	if cpSpec.AutomaticRestart != nil {
+		automaticRestart, _, err := resolver.GetConfigVarBoolValue(*cpSpec.AutomaticRestart)
+		if err != nil {
+			return nil, fmt.Errorf("cannot retrieve automaticRestart: %v", err)
+		}
+		cfg.automaticRestart = &automaticRestart
+
+		if *cfg.automaticRestart && cfg.preemptible {
+			return nil, fmt.Errorf("automatic restart option can only be enabled for standard instances. Preemptible instances cannot be automatically restarted")
+		}
+	}
+
+	if cpSpec.ProvisioningModel != nil {
+		provisioningModel, err := resolver.GetConfigVarStringValue(*cpSpec.ProvisioningModel)
+		if err != nil {
+			return nil, fmt.Errorf("cannot retrieve provisioningModel: %v", err)
+		}
+		cfg.provisioningModel = &provisioningModel
+	}
+
 	// make it true by default
 	cfg.assignPublicIPAddress = true
 
diff --git a/pkg/cloudprovider/provider/gce/provider.go b/pkg/cloudprovider/provider/gce/provider.go
index 592cd6b6..6c5db721 100644
--- a/pkg/cloudprovider/provider/gce/provider.go
+++ b/pkg/cloudprovider/provider/gce/provider.go
@@ -116,7 +116,7 @@ func (p *Provider) Validate(spec clusterv1alpha1.MachineSpec) error {
 		return newError(common.InvalidConfigurationMachineError, errInvalidZone)
 	}
 
-	switch cfg.providerConfig.Network.GetNetworkFamily() {
+	switch cfg.providerConfig.Network.GetIPFamily() {
 	case util.Unspecified, util.IPv4:
 		// noop
 	case util.IPv6:
@@ -126,7 +126,7 @@ func (p *Provider) Validate(spec clusterv1alpha1.MachineSpec) error {
 			return newError(common.InvalidConfigurationMachineError, errIPv6UnsupportedZone, cfg.zone)
 		}
 	default:
-		return newError(common.InvalidConfigurationMachineError, util.ErrUnknownNetworkFamily, cfg.providerConfig.Network.GetNetworkFamily())
+		return newError(common.InvalidConfigurationMachineError, util.ErrUnknownNetworkFamily, cfg.providerConfig.Network.GetIPFamily())
 	}
 
 	if cfg.machineType == "" {
@@ -288,6 +288,15 @@ func (p *Provider) Create(machine *clusterv1alpha1.Machine, data *cloudprovidert
 			Items: cfg.tags,
 		},
 	}
+
+	if cfg.automaticRestart != nil {
+		inst.Scheduling.AutomaticRestart = cfg.automaticRestart
+	}
+
+	if cfg.provisioningModel != nil {
+		inst.Scheduling.ProvisioningModel = *cfg.provisioningModel
+	}
+
 	op, err := svc.Instances.Insert(cfg.projectID, cfg.zone, inst).Do()
 	if err != nil {
 		return nil, newError(common.InvalidConfigurationMachineError, errInsertInstance, err)
diff --git a/pkg/cloudprovider/provider/gce/service.go b/pkg/cloudprovider/provider/gce/service.go
index f62da971..ed2ee566 100644
--- a/pkg/cloudprovider/provider/gce/service.go
+++ b/pkg/cloudprovider/provider/gce/service.go
@@ -91,7 +91,7 @@ func (svc *service) networkInterfaces(cfg *config) ([]*compute.NetworkInterface,
 	// if assigning public IP addresses is enabled.
 	if cfg.assignPublicIPAddress {
 		// GCP doesn't support IPv6 only stack
-		if cfg.providerConfig.Network.GetNetworkFamily() == util.DualStack {
+		if cfg.providerConfig.Network.GetIPFamily() == util.DualStack {
 			ifc.StackType = "IPV4_IPV6"
 
 			ifc.Ipv6AccessConfigs = []*compute.AccessConfig{
@@ -102,7 +102,7 @@ func (svc *service) networkInterfaces(cfg *config) ([]*compute.NetworkInterface,
 				},
 			}
 		} else {
-			klog.Infof("network family doesn't specify dual stack: %s", cfg.providerConfig.Network.GetNetworkFamily())
+			klog.Infof("IP family doesn't specify dual stack: %s", cfg.providerConfig.Network.GetIPFamily())
 		}
 
 	}
diff --git a/pkg/cloudprovider/provider/gce/types/types.go b/pkg/cloudprovider/provider/gce/types/types.go
index 8eeed720..7b05eef3 100644
--- a/pkg/cloudprovider/provider/gce/types/types.go
+++ b/pkg/cloudprovider/provider/gce/types/types.go
@@ -30,20 +30,22 @@ import (
 // CloudProviderSpec contains the specification of the cloud provider taken
 // from the provider configuration.
 type CloudProviderSpec struct {
-	ServiceAccount        providerconfigtypes.ConfigVarString `json:"serviceAccount,omitempty"`
-	Zone                  providerconfigtypes.ConfigVarString `json:"zone"`
-	MachineType           providerconfigtypes.ConfigVarString `json:"machineType"`
-	DiskSize              int64                               `json:"diskSize"`
-	DiskType              providerconfigtypes.ConfigVarString `json:"diskType"`
-	Network               providerconfigtypes.ConfigVarString `json:"network"`
-	Subnetwork            providerconfigtypes.ConfigVarString `json:"subnetwork"`
-	Preemptible           providerconfigtypes.ConfigVarBool   `json:"preemptible"`
-	Labels                map[string]string                   `json:"labels,omitempty"`
-	Tags                  []string                            `json:"tags,omitempty"`
-	AssignPublicIPAddress *providerconfigtypes.ConfigVarBool  `json:"assignPublicIPAddress,omitempty"`
-	MultiZone             providerconfigtypes.ConfigVarBool   `json:"multizone"`
-	Regional              providerconfigtypes.ConfigVarBool   `json:"regional"`
-	CustomImage           providerconfigtypes.ConfigVarString `json:"customImage,omitempty"`
+	ServiceAccount        providerconfigtypes.ConfigVarString  `json:"serviceAccount,omitempty"`
+	Zone                  providerconfigtypes.ConfigVarString  `json:"zone"`
+	MachineType           providerconfigtypes.ConfigVarString  `json:"machineType"`
+	DiskSize              int64                                `json:"diskSize"`
+	DiskType              providerconfigtypes.ConfigVarString  `json:"diskType"`
+	Network               providerconfigtypes.ConfigVarString  `json:"network"`
+	Subnetwork            providerconfigtypes.ConfigVarString  `json:"subnetwork"`
+	Preemptible           providerconfigtypes.ConfigVarBool    `json:"preemptible"`
+	AutomaticRestart      *providerconfigtypes.ConfigVarBool   `json:"automaticRestart,omitempty"`
+	ProvisioningModel     *providerconfigtypes.ConfigVarString `json:"provisioningModel,omitempty"`
+	Labels                map[string]string                    `json:"labels,omitempty"`
+	Tags                  []string                             `json:"tags,omitempty"`
+	AssignPublicIPAddress *providerconfigtypes.ConfigVarBool   `json:"assignPublicIPAddress,omitempty"`
+	MultiZone             providerconfigtypes.ConfigVarBool    `json:"multizone"`
+	Regional              providerconfigtypes.ConfigVarBool    `json:"regional"`
+	CustomImage           providerconfigtypes.ConfigVarString  `json:"customImage,omitempty"`
 }
 
 // UpdateProviderSpec updates the given provider spec with changed
diff --git a/pkg/cloudprovider/util/net.go b/pkg/cloudprovider/util/net.go
index f685af83..fc640f1b 100644
--- a/pkg/cloudprovider/util/net.go
+++ b/pkg/cloudprovider/util/net.go
@@ -25,7 +25,7 @@ import (
 
 const (
 	ErrIPv6OnlyUnsupported  = "IPv6 only network family not supported yet"
-	ErrUnknownNetworkFamily = "Unknown network family %q only IPv4,IPv6,IPv4+IPv6 are valid values"
+	ErrUnknownNetworkFamily = "Unknown IP family %q only IPv4,IPv6,IPv4+IPv6 are valid values"
 )
 
 func CIDRToIPAndNetMask(ipv4 string) (string, string, int, error) {
@@ -60,14 +60,14 @@ func GenerateRandMAC() (net.HardwareAddr, error) {
 	return mac, nil
 }
 
-// NetworkFamily IPv4 | IPv6 | IPv4+IPv6
-type NetworkFamily string
+// IPFamily IPv4 | IPv6 | IPv4+IPv6
+type IPFamily string
 
 const (
-	Unspecified NetworkFamily = "" // interpreted as IPv4
-	IPv4        NetworkFamily = "IPv4"
-	IPv6        NetworkFamily = "IPv6"
-	DualStack   NetworkFamily = "IPv4+IPv6"
+	Unspecified IPFamily = "" // interpreted as IPv4
+	IPv4        IPFamily = "IPv4"
+	IPv6        IPFamily = "IPv6"
+	DualStack   IPFamily = "IPv4+IPv6"
 )
 
 // IsLinkLocal checks if given ip address is link local
diff --git a/pkg/providerconfig/types/types.go b/pkg/providerconfig/types/types.go
index 5fa134a2..6d8c5ef3 100644
--- a/pkg/providerconfig/types/types.go
+++ b/pkg/providerconfig/types/types.go
@@ -109,17 +109,17 @@ type DNSConfig struct {
 
 // NetworkConfig contains a machine's static network configuration
 type NetworkConfig struct {
-	CIDR          string             `json:"cidr"`
-	Gateway       string             `json:"gateway"`
-	DNS           DNSConfig          `json:"dns"`
-	NetworkFamily util.NetworkFamily `json:"networkFamily,omitempty"`
+	CIDR     string        `json:"cidr"`
+	Gateway  string        `json:"gateway"`
+	DNS      DNSConfig     `json:"dns"`
+	IPFamily util.IPFamily `json:"ipFamily,omitempty"`
 }
 
-func (n *NetworkConfig) GetNetworkFamily() util.NetworkFamily {
+func (n *NetworkConfig) GetIPFamily() util.IPFamily {
 	if n == nil {
 		return util.Unspecified
 	}
-	return n.NetworkFamily
+	return n.IPFamily
 }
 
 type Config struct {


Test patch:
diff --git a/pkg/cloudprovider/provider/gce/provider_test.go b/pkg/cloudprovider/provider/gce/provider_test.go
index f19965bf..03691869 100644
--- a/pkg/cloudprovider/provider/gce/provider_test.go
+++ b/pkg/cloudprovider/provider/gce/provider_test.go
@@ -44,6 +44,7 @@ func testProviderSpec() map[string]interface{} {
 			"multizone":             false,
 			"network":               "global/networks/default",
 			"preemptible":           false,
+			"provisioningModel":     "STANDARD",
 			"regional":              false,
 			"serviceAccount":        "",
 			"subnetwork":            "",
@@ -120,7 +121,7 @@ func TestValidate(t *testing.T) {
 		expectErr bool
 	}{
 		{
-			"without network family",
+			"without IP family",
 			v1alpha1.MachineSpec{
 				ProviderSpec: v1alpha1.ProviderSpec{
 					Value: &runtime.RawExtension{
@@ -131,12 +132,12 @@ func TestValidate(t *testing.T) {
 			false,
 		},
 		{
-			"empty network family",
+			"empty IP family",
 			v1alpha1.MachineSpec{
 				ProviderSpec: v1alpha1.ProviderSpec{
 					Value: &runtime.RawExtension{
 						Raw: rawBytes(testMap(testProviderSpec()).
-							with("network.networkFamily", ""),
+							with("network.ipFamily", ""),
 						),
 					},
 				},
@@ -144,12 +145,12 @@ func TestValidate(t *testing.T) {
 			false,
 		},
 		{
-			"with network family",
+			"with IP family",
 			v1alpha1.MachineSpec{
 				ProviderSpec: v1alpha1.ProviderSpec{
 					Value: &runtime.RawExtension{
 						Raw: rawBytes(testMap(testProviderSpec()).
-							with("network.networkFamily", "IPv4+IPv6"),
+							with("network.ipFamily", "IPv4+IPv6"),
 						),
 					},
 				},
@@ -162,7 +163,7 @@ func TestValidate(t *testing.T) {
 				ProviderSpec: v1alpha1.ProviderSpec{
 					Value: &runtime.RawExtension{
 						Raw: rawBytes(testMap(testProviderSpec()).
-							with("network.networkFamily", "IPv4+IPv6").
+							with("network.ipFamily", "IPv4+IPv6").
 							with("cloudProviderSpec.zone", "europe-west3-a"),
 						),
 					},
diff --git a/test/e2e/provisioning/all_e2e_test.go b/test/e2e/provisioning/all_e2e_test.go
index 8d0197fa..bc7050f4 100644
--- a/test/e2e/provisioning/all_e2e_test.go
+++ b/test/e2e/provisioning/all_e2e_test.go
@@ -814,7 +814,7 @@ func getVSphereTestParams(t *testing.T) []string {
 func TestVsphereProvisioningE2E(t *testing.T) {
 	t.Parallel()
 
-	selector := Not(OsSelector("sles", "amzn2", "rockylinux"))
+	selector := Not(OsSelector("sles", "amzn2"))
 	params := getVSphereTestParams(t)
 
 	runScenarios(t, selector, params, VSPhereManifest, fmt.Sprintf("vs-%s", *testRunIdentifier))