Skip to content

OPNET-678: Make VIPs optional with external loadbalancer #1803

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

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

Conversation

cybertron
Copy link
Member

No description provided.

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

openshift-ci-robot commented May 21, 2025

@cybertron: This pull request references OPNET-678 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 epic to target the "4.20.0" version, but no target version was set.

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot requested review from danwinship and trozet May 21, 2025 21:48
Copy link
Contributor

openshift-ci bot commented May 21, 2025

[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 dougbtv for approval. For more information see the 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

@cybertron
Copy link
Member Author

/cc @mkowalski @emy

@openshift-ci openshift-ci bot requested review from emy and mkowalski May 21, 2025 21:49
@mkowalski
Copy link
Contributor

After first pass all good, I do not see anything particularly concerning

@cybertron cybertron force-pushed the optional-vips-with-extlb branch from 9d931c1 to 429561d Compare May 22, 2025 19:09
@cybertron
Copy link
Member Author

/cc @JoelSpeed

@openshift-ci openshift-ci bot requested a review from JoelSpeed June 17, 2025 17:09

### Implementation Details/Notes/Constraints

A configuration to use this new functionality would look like the following:
Copy link
Contributor

Choose a reason for hiding this comment

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

What configuration is this? Who is creating it? What is reading it?

Copy link
Contributor

Choose a reason for hiding this comment

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

This snippet comes from the install-config.yaml

Copy link
Contributor

Choose a reason for hiding this comment

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

Can we clarify this in the enhancement?

Copy link
Member Author

Choose a reason for hiding this comment

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

Sure

Comment on lines 112 to 113
Note the lack of the apiVIPs and ingressVIPs fields, which previously would
have been mandatory with this configuration.
Copy link
Contributor

Choose a reason for hiding this comment

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

What happens if I provide only one of those fields? Is that a valid configuration? Are there any risks in place if a user manually specifies either or both of the VIPs fields and uses one of these more advanced external loadbalancers?

Copy link
Contributor

Choose a reason for hiding this comment

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

if a user manually specifies [...] both of the VIPs fields and uses one of these more advanced external loadbalancers?

This is what happens today, so what we want to have is that you are no longer forced to specify VIP(s) when you use external loadbalancer

Copy link
Contributor

Choose a reason for hiding this comment

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

What happens if I provide only one of those fields? Is that a valid configuration?

We should have a syntax check in place that you either provide both of them or none

Copy link
Contributor

Choose a reason for hiding this comment

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

A syntax check sounds reasonable.

I'm also wondering if it would make sense to have a new loadbalancer.type field (assuming this is a discriminated union) that just removes the ability to set those options altogether?

I'm not very familiar with the existing API, so if we could also link to the existing API in the enhancement, that would be helpful for further review.

Copy link
Member Author

Choose a reason for hiding this comment

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

We already do: https://github.com/openshift/installer/blob/fe225d16eef71880ba4cd8027f6f9e5b2b0d3063/pkg/types/validation/installconfig.go#L983 and https://github.com/openshift/installer/blob/fe225d16eef71880ba4cd8027f6f9e5b2b0d3063/pkg/types/validation/installconfig.go#L1034

However, after looking through that validation logic I have realized we already allow 0 VIPs, which is problematic for this proposal because it conflicts with the behavior I was planning to implement. A pretty significant re-work of this enhancement is on the way.

Comment on lines 166 to 167
This is a variation on an existing supported deployment scenario, so we don't
plan to pursue a graduation process. It will be GA from initial implementation.
Copy link
Contributor

Choose a reason for hiding this comment

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

Why should this new variation not go through the proper promotion channels before being supported?

Copy link
Member Author

Choose a reason for hiding this comment

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

Honestly, we've had pretty bad luck with tech preview features for baremetal customers. They won't even try them.

However, given that I think this is going to be a more substantial change than I initially expected I'm discussing this with the field team asking for it.

@JoelSpeed
Copy link
Contributor

/cc @JoelSpeed

@everettraven Is taking the first pass from an API review perspective, he will ping me for review once he's happy from the API review perspective

It turns out we already supported providing zero VIPs, so we can't
use that as the determining factor for this feature.
Copy link
Member Author

@cybertron cybertron left a comment

Choose a reason for hiding this comment

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

Since I discovered that we already allow zero VIPs (it triggers a DNS lookup for those values) we're going to need a different approach. New revision coming shortly to reflect that.

Comment on lines 112 to 113
Note the lack of the apiVIPs and ingressVIPs fields, which previously would
have been mandatory with this configuration.
Copy link
Member Author

Choose a reason for hiding this comment

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

We already do: https://github.com/openshift/installer/blob/fe225d16eef71880ba4cd8027f6f9e5b2b0d3063/pkg/types/validation/installconfig.go#L983 and https://github.com/openshift/installer/blob/fe225d16eef71880ba4cd8027f6f9e5b2b0d3063/pkg/types/validation/installconfig.go#L1034

However, after looking through that validation logic I have realized we already allow 0 VIPs, which is problematic for this proposal because it conflicts with the behavior I was planning to implement. A pretty significant re-work of this enhancement is on the way.


### Implementation Details/Notes/Constraints

A configuration to use this new functionality would look like the following:
Copy link
Member Author

Choose a reason for hiding this comment

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

Sure

Comment on lines 166 to 167
This is a variation on an existing supported deployment scenario, so we don't
plan to pursue a graduation process. It will be GA from initial implementation.
Copy link
Member Author

Choose a reason for hiding this comment

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

Honestly, we've had pretty bad luck with tech preview features for baremetal customers. They won't even try them.

However, given that I think this is going to be a more substantial change than I initially expected I'm discussing this with the field team asking for it.

@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 13, 2025
@cybertron
Copy link
Member Author

@everettraven I've had some discussions with the customer that asked for this and they agreed to try it in tech preview, so I've included details about that. I also did some prototyping of the new API and modified the proposal to better reflect the OpenShift API guidelines. I have a working implementation now so if we can get the API details worked out I think we'll be able to move forward pretty quickly with this. Thanks!

Copy link
Contributor

openshift-ci bot commented Aug 14, 2025

@cybertron: 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.

@cybertron
Copy link
Member Author

/remove-lifecycle stale

@openshift-ci openshift-ci bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 15, 2025
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.

6 participants