Skip to content

Conversation

@rvanderp3
Copy link
Contributor

@rvanderp3 rvanderp3 commented Jul 26, 2023

To enable control plane machineset support, the followings changes are required:

  • add VSphereFailureDomain
  • add template to infrastructure spec. a unique template is created for each failure domain. CPMS has no way of knowing what the intended template without it being defined in the failure domain topology.

These API extensions are gated by the VSphereControlPlaneMachineSet feature gate.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 26, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jul 26, 2023

Hello @rvanderp3! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ci openshift-ci bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jul 26, 2023
@openshift-ci openshift-ci bot requested review from eparis and mandre July 26, 2023 21:52
@rvanderp3
Copy link
Contributor Author

/uncc @eparis @mandre

@openshift-ci openshift-ci bot removed request for eparis and mandre July 26, 2023 22:03
@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 7be297a to b91b14a Compare July 27, 2023 14:48
@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch 2 times, most recently from 6f9f13f to 299b3fe Compare August 9, 2023 14:13
@rvanderp3 rvanderp3 changed the title WIP: define VSphereFailureDomain for use in control plane machinesets SPLAT-1127: define VSphereFailureDomain for use in control plane machinesets Aug 10, 2023
@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 10, 2023
@openshift-ci-robot
Copy link

openshift-ci-robot commented Aug 10, 2023

@rvanderp3: This pull request references SPLAT-1127 which is a valid jira issue.

In response to this:

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

@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Aug 10, 2023
@rvanderp3 rvanderp3 changed the title SPLAT-1127: define VSphereFailureDomain for use in control plane machinesets SPLAT-1127: extend API to enable vSphere control plane machineset Aug 14, 2023
@openshift-ci-robot
Copy link

openshift-ci-robot commented Aug 14, 2023

@rvanderp3: This pull request references SPLAT-1127 which is a valid jira issue.

In response to this:

To enable control plane machineset support, the followings changes are required:

  • add VSphereFailureDomain
  • add template to infrastructure spec. a unique template is created for each failure domain. CPMS has no way of knowing what the intended template without it being defined in the failure domain topology.

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

@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch 2 times, most recently from 8337577 to 37d9131 Compare August 15, 2023 17:42
@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 37d9131 to 9dae305 Compare August 23, 2023 19:48
@openshift-ci openshift-ci bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Aug 23, 2023
@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 9dae305 to 728d311 Compare August 23, 2023 19:58
@openshift-ci-robot
Copy link

openshift-ci-robot commented Aug 23, 2023

@rvanderp3: This pull request references SPLAT-1127 which is a valid jira issue.

In response to this:

To enable control plane machineset support, the followings changes are required:

  • add VSphereFailureDomain
  • add template to infrastructure spec. a unique template is created for each failure domain. CPMS has no way of knowing what the intended template without it being defined in the failure domain topology.

These API extensions are gated by the VSphereControPlaneMachineSet feature gate.

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

@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch 3 times, most recently from 44da11b to 37d9131 Compare August 25, 2023 16:29
@openshift-ci openshift-ci bot removed the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Aug 25, 2023
@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 12, 2023
@rvanderp3
Copy link
Contributor Author

@JoelSpeed this is ready for another look when you get a chance.

@rvanderp3
Copy link
Contributor Author

rvanderp3 commented Sep 20, 2023

// Name is the name of the failure domain in which the vSphere machine provider will create the VM.
// Failure domains are defined in a cluster's config.openshift.io/Infrastructure resource.
// +kubebuilder:validation:Required
Name string `json:"name"`
Copy link
Contributor

Choose a reason for hiding this comment

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

Ok, I think we should expand the comment here then to explain what the CPMS will do with the information from the failure domains.

// When balancing machines across failure domains, the control plane machine set will inject configuration from the
// Infrastructure resource into the machine providerSpec to allocate the machine to a failure domain.

// +optional
GCP *[]GCPFailureDomain `json:"gcp,omitempty"`

// VSphere configures failure domain information for the VSphere platform.
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit, should be a lower case vsphere to match json casing, other fields here aren't correct

Suggested change
// VSphere configures failure domain information for the VSphere platform.
// vsphere configures failure domain information for the VSphere platform.

Comment on lines 1014 to 1015
// template is the inventory path of the virtual machine or template
// that will be used for cloning.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// template is the inventory path of the virtual machine or template
// that will be used for cloning.
// template is the inventory path of the virtual machine or template
// that will be cloned when creating new machines in this failure domain.

Comment on lines +1017 to +1026
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=2048
// +kubebuilder:validation:Pattern=`^/.*?/vm/.*?`
Copy link
Contributor

Choose a reason for hiding this comment

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

These validations should be explained in prose within the godoc.

Do we run the same regex validation against the template field on the providerSpec?

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, we will perform that validation in the cpmso

Copy link
Contributor Author

Choose a reason for hiding this comment

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

validation for this has been added to the cpmso

@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from fabb5c2 to af9ae35 Compare September 26, 2023 14:40
@rvanderp3
Copy link
Contributor Author

hi @JoelSpeed when you get a chance can you give this another look? Thanks!

@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from af9ae35 to 5b09f16 Compare October 3, 2023 17:22
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.

One small nit but otherwise LGTM, how are we getting on with the implementation? I'm guessing I need to review that one next?

// that will be cloned when creating new machines in this failure domain.
// The maximum length of the path is 2048 characters.
//
// if not defined, the template will be calculated by the control plane
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit for idiomatic language

Suggested change
// if not defined, the template will be calculated by the control plane
// When omitted, the template will be calculated by the control plane

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The implementation is going well. We still have some issues we are working through as we continue to test. Certainly, if you have time to review the implementation PR that would be great. We are working through some remaining issues but the overall function is in the PR.

@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 5b09f16 to 3bda49d Compare October 10, 2023 12:53
// that will be cloned when creating new machines in this failure domain.
// The maximum length of the path is 2048 characters.
//
// when omitted, the template will be calculated by the control plane
Copy link
Contributor

Choose a reason for hiding this comment

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

Should be a capital W on when since there's a full stop on the previous para

@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 3bda49d to 58ee449 Compare October 10, 2023 13:30
@jcpowermac
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 10, 2023
@rvanderp3
Copy link
Contributor Author

@JoelSpeed this is ready for another look when you get a chance.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 18, 2023
@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 58ee449 to 2f7bbc5 Compare October 18, 2023 13:39
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 18, 2023
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Oct 18, 2023
@rvanderp3 rvanderp3 force-pushed the cpms-vsphere-failure-domain branch from 2f7bbc5 to c2f724a Compare October 23, 2023 19:22
@JoelSpeed
Copy link
Contributor

/lgtm
/override ci/prow/verify-crd-schema

Failures are pre-existing, the schema check doesn't account for renames

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 24, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 24, 2023

@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/verify-crd-schema

In response to this:

/lgtm
/override ci/prow/verify-crd-schema

Failures are pre-existing, the schema check doesn't account for renames

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 24, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jcpowermac, JoelSpeed, rvanderp3

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

The pull request process is described here

Needs approval from an approver in each of these files:

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 24, 2023

@rvanderp3: all tests passed!

Full PR test history. Your PR dashboard.

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 24, 2023
@openshift-ci openshift-ci bot merged commit 79b9cd5 into openshift:master Oct 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants