Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPLAT-1582: Multi vCenter Support #1660

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

vr4manta
Copy link
Contributor

@vr4manta vr4manta commented Aug 5, 2024

SPLAT-1582

Changes

  • Creating support for multiple vCenters in a vSphere installation

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 5, 2024
@openshift-ci-robot
Copy link

openshift-ci-robot commented Aug 5, 2024

@vr4manta: This pull request references SPLAT-1582 which is a valid jira issue.

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

In response to this:

SPLAT-1582

Changes

  • Creating support for multiple vCenters in a vSphere installation

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

1 similar comment
@openshift-ci-robot
Copy link

openshift-ci-robot commented Aug 5, 2024

@vr4manta: This pull request references SPLAT-1582 which is a valid jira issue.

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

In response to this:

SPLAT-1582

Changes

  • Creating support for multiple vCenters in a vSphere installation

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

Copy link
Contributor

openshift-ci bot commented Aug 5, 2024

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign joelanford for approval. For more information see the Kubernetes Code Review Process.

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

Needs approval from an approver in each of these files:

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

enhancements/vsphere-multi-vcenter.md Outdated Show resolved Hide resolved
enhancements/vsphere-multi-vcenter.md Outdated Show resolved Hide resolved
enhancements/vsphere-multi-vcenter.md Outdated Show resolved Hide resolved
deferred to a later phase of implementation that may call for its own
enhancement.

- Updating cloud config to yaml format for existing clusters (upgrading OCP to 4.17+)
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we call out that only clusters installed on 4.17(or the y-stream where this is GA'ed) or later can use this feature?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sounds good. I'll update that.

Comment on lines +98 to +117
The multiple vCenter feature will begin allowing more than one vCenter to be
configured in the infrastructure resource. We will be controlling this via
a new feature (VSphereMultiVCenters) and will have different CRDs installed
based on this gate.

Initially, the plans are to allow a max of 3 vCenters to be configured when the
feature gate is enabled. The way we are going to control this is by adding new
control annotations to the model objects.

The OpenShift controller tools will be enhanced to allow a new Feature Gate
Aware config option for max size.

Example:
```go
// +kubebuilder:validation:MinItems=0
// +openshift:validation:FeatureGateAwareMaxItems:featureGate="",maxItems=1
// +openshift:validation:FeatureGateAwareMaxItems:featureGate=VSphereMultiVCenters,maxItems=3
// +listType=atomic
// +optional
VCenters []VSpherePlatformVCenterSpec `json:"vcenters,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we consider a webhook to block updates if the cluster doesnt have a yaml cloud config?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We recently updated the CRD to block changes once this field is set in 4.17. Once we finish migration testing and fixes, the CRD will be updated to not have those blockers anymore. Right now I do believe the cluster admin will have to manually migrate this config. I am hoping we can maybe create an automated process for this.

Copy link
Contributor

@JoelSpeed JoelSpeed left a comment

Choose a reason for hiding this comment

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

Does spanning multiple vCenters introduce anything new that we need to consider with respect to the security of the cluster?

Comment on lines +107 to +108
The OpenShift controller tools will be enhanced to allow a new Feature Gate
Aware config option for max size.
Copy link
Contributor

Choose a reason for hiding this comment

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

This was already done right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I am working on updating verbage to not be future tense based on reviews from others. Sorry for the confusion.

Comment on lines +631 to +636
Next the operator was enhanced to be able to support using the upstream vSphere
YAML cloud provider config format. There is some logic that uses our old legacy
style config. To preserve this, we created a wrapper config object that attempts
to load the cloud provider config as either INI or YAML. If its INI, we will
also store the INI data into the `LegacyConfig` field so we can access it in
certain situations.
Copy link
Contributor

Choose a reason for hiding this comment

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

We have had people confused by the errors from trying to read old vs new, is there anything we can do to mitigate these errors from being produced?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am working with upstream to fix these outputs: kubernetes/cloud-provider-vsphere#1225

Comment on lines +696 to +698
### Multiple vCenters Configured as Day 2

NOTE: This section is placeholder for future design / work.
Copy link
Contributor

Choose a reason for hiding this comment

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

What do we actually support In OCP 4.17? It is possible to edit Infrastructure after installation and all the operators try to respect it. But is it supported? Should we block such edits until we figure out what we actually support?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In 4.17, we are not supporting migrating single vCenter to multiple. That work is still being validated to see what all is not working. We did have a PR to make sure in 4.17 that the CRD prevents user from changing vCenters list after install.

Copy link
Contributor

openshift-ci bot commented Sep 5, 2024

@vr4manta: all tests passed!

Full PR test history. Your PR dashboard.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants