-
Notifications
You must be signed in to change notification settings - Fork 142
kube_cloud_config: support for other Azure cloud environments #133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kube_cloud_config: support for other Azure cloud environments #133
Conversation
fe1b6b9 to
415f494
Compare
|
/hold This is currently vendoring an openshift/api fork until openshift/api#650 merges. |
346a2aa to
7f5aeff
Compare
|
7f5aeff to
9656e5d
Compare
/hold cancel |
|
/approve |
|
/test e2e-azure |
1 similar comment
|
/test e2e-azure |
|
/hold The machine config is not getting generated. The masters are stuck using 99-master-generated-registries. |
The cluster-config-operator is writing out a different cloud.conf, which is causing the machine-config-operator to render a different machineconfig. The machine-config daemon running in bootstrap node is looking for the first hash, before the cluster-config-operator changes. |
9656e5d to
1a7e4e0
Compare
|
1a7e4e0 to
7299eac
Compare
|
7299eac to
4dc1e74
Compare
|
/test e2e-azure |
|
The azure tests look to be failing to create the worker nodes. I assume this is due to the bug where the validation is rejecting changes to the machine when This may have been the underlying cause of the masters not being able to transition to the new state after the cloud.conf was changed. So my recent changes to this PR may not have been necessary. I think it is better that the cluster-config-operator does not change the cloud.conf if it does not have to. But this does require copying type from https://github.com/kubernetes/kubernetes/blob/v1.13.5/pkg/cloudprovider/providers/azure. I had been hesitant to do that since it introduces something else that may become out-of-sync and is not easy to discover. I could change it to use the incoming cloud.conf unmodified when the cloud already matches and fall back to alphabetical ordering when a change is necessary? |
|
/test e2e-azure |
|
/test e2e-azure |
|
/retest |
|
/lgtm |
|
shows the installs are completing.. /hold cancel |
| k8s.io/api v0.18.2 | ||
| k8s.io/apimachinery v0.18.2 | ||
| k8s.io/api v0.18.3 | ||
| k8s.io/apimachinery v0.18.3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why version skew?
|
Needs rebase. See version skew nit. Otherwise, sgtm. |
Populate the `cloud` field in kube cloud.conf stored in the kube-cloud-config ConfigMap in the openshift-config-managed namespace. This field informs in which Azure cloud environment the cluster is installed and consequently which Azure API endpoint should be used when communicating via the Azure SDK. The value populated comes from the `.status.platformStatus.azure.cloudName` field of the infrastructure.config.openshift.io resource. If the field is empty or missing, then the default "AzurePublicCloud" value is set for the `cloud` field in the kube cloud config. If the field generated from the infrastructure resource conflicts with the field in the user-provided kube cloud config, then the controller will error on syncing the infrastructure resource. See openshift/enhancements#321 https://issues.redhat.com/browse/CORS-1444
ec4ebaa to
bf88b22
Compare
The version of openshift/api has already been bumped in master, so the commit bumping the version in this PR has been removed. |
|
/retest |
|
/retest |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: abhinavdahiya, jhixson74, staebler, sttts The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This change adds the functionality from the cluster-config-operator
azure CloudConfigTransformer.
The functionality we bring over is:
1. Ensure that the Cloud is set in the cloud.conf
i. If it is set, verify that it is valid and does not conflict with the
infrastructure config. If it conflicts, we want to error
ii. If it is not set, default to public cloud (configv1.AzurePublicCloud)
2. Verify the cloud name set in the infra config is valid, if it is not
bail with an informative error
See openshift/cluster-config-operator#133 for
the PR that initially added this functionality.
This change adds the functionality from the cluster-config-operator
azure CloudConfigTransformer.
The functionality we bring over is:
1. Ensure that the Cloud is set in the cloud.conf
i. If it is set, verify that it is valid and does not conflict with the
infrastructure config. If it conflicts, we want to error
ii. If it is not set, default to public cloud (configv1.AzurePublicCloud)
2. Verify the cloud name set in the infra config is valid, if it is not
bail with an informative error
See openshift/cluster-config-operator#133 for
the PR that initially added this functionality.
This change adds the functionality from the cluster-config-operator
azure CloudConfigTransformer.
The functionality we bring over is:
1. Ensure that the Cloud is set in the cloud.conf
i. If it is set, verify that it is valid and does not conflict with the
infrastructure config. If it conflicts, we want to error
ii. If it is not set, default to public cloud (configv1.AzurePublicCloud)
2. Verify the cloud name set in the infra config is valid, if it is not
bail with an informative error
See openshift/cluster-config-operator#133 for
the PR that initially added this functionality.
This change adds the functionality from the cluster-config-operator
azure CloudConfigTransformer.
The functionality we bring over is:
1. Ensure that the Cloud is set in the cloud.conf
i. If it is set, verify that it is valid and does not conflict with the
infrastructure config. If it conflicts, we want to error
ii. If it is not set, default to public cloud (configv1.AzurePublicCloud)
2. Verify the cloud name set in the infra config is valid, if it is not
bail with an informative error
See openshift/cluster-config-operator#133 for
the PR that initially added this functionality.
This change adds the functionality from the cluster-config-operator
azure CloudConfigTransformer.
The functionality we bring over is:
1. Ensure that the Cloud is set in the cloud.conf
i. If it is set, verify that it is valid and does not conflict with the
infrastructure config. If it conflicts, we want to error
ii. If it is not set, default to public cloud (configv1.AzurePublicCloud)
2. Verify the cloud name set in the infra config is valid, if it is not
bail with an informative error
See openshift/cluster-config-operator#133 for
the PR that initially added this functionality.
This adds a CloudConfigTransformer for Azure that will set the VMType to 'standard' if unset. See openshift#291, OCPBUGS-25483 and OCPBUGS-20213 for more information. This change also adds the functionality from the cluster-config-operator azure CloudConfigTransformer. The functionality we bring over is: 1. Ensure that the Cloud is set in the cloud.conf i. If it is set, verify that it is valid and does not conflict with the infrastructure config. If it conflicts, we want to error ii. If it is not set, default to public cloud (configv1.AzurePublicCloud) 2. Verify the cloud name set in the infra config is valid, if it is not bail with an informative error See openshift/cluster-config-operator#133 for the PR that initially added this functionality.
This adds a CloudConfigTransformer for Azure that will set the VMType to 'standard' if unset. See openshift#291, OCPBUGS-25483 and OCPBUGS-20213 for more information. This change also adds the functionality from the cluster-config-operator azure CloudConfigTransformer. The functionality we bring over is: 1. Ensure that the Cloud is set in the cloud.conf i. If it is set, verify that it is valid and does not conflict with the infrastructure config. If it conflicts, we want to error ii. If it is not set, default to public cloud (configv1.AzurePublicCloud) 2. Verify the cloud name set in the infra config is valid, if it is not bail with an informative error See openshift/cluster-config-operator#133 for the PR that initially added this functionality.
This adds a CloudConfigTransformer for Azure that will set the VMType to 'standard' if unset. See openshift#291, OCPBUGS-25483 and OCPBUGS-20213 for more information. This change also adds the functionality from the cluster-config-operator azure CloudConfigTransformer. The functionality we bring over is: 1. Ensure that the Cloud is set in the cloud.conf i. If it is set, verify that it is valid and does not conflict with the infrastructure config. If it conflicts, we want to error ii. If it is not set, default to public cloud (configv1.AzurePublicCloud) 2. Verify the cloud name set in the infra config is valid, if it is not bail with an informative error See openshift/cluster-config-operator#133 for the PR that initially added this functionality.
This adds a CloudConfigTransformer for Azure that will set the VMType to 'standard' if unset. See openshift#291, OCPBUGS-25483 and OCPBUGS-20213 for more information. This change also adds the functionality from the cluster-config-operator azure CloudConfigTransformer. The functionality we bring over is: 1. Ensure that the Cloud is set in the cloud.conf i. If it is set, verify that it is valid and does not conflict with the infrastructure config. If it conflicts, we want to error ii. If it is not set, default to public cloud (configv1.AzurePublicCloud) 2. Verify the cloud name set in the infra config is valid, if it is not bail with an informative error See openshift/cluster-config-operator#133 for the PR that initially added this functionality.
Populate the
cloudfield in kube cloud.conf stored in the kube-cloud-config ConfigMap in the openshift-config-managed namespace. This field informs in which Azure cloud environment the cluster is installed and consequently which Azure API endpoint should be used when communicating via the Azure SDK.The value populated comes from the
.status.platformStatus.azure.cloudNamefield of the infrastructure.config.openshift.io resource. If the field is empty or missing, then the default "AZUREPUBLICCLOUD" value is set for thecloudfield in the kube cloud config. If the field generated from the infrastructure resource conflicts with the field in the user-provided kubecloud config, then the controller will error on syncing the infrastructure resource.
See openshift/enhancements#321
https://issues.redhat.com/browse/CORS-1444