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

feat: add VIP mac address input panel #894

Merged
merged 3 commits into from
Dec 23, 2024
Merged

Conversation

ihcsim
Copy link
Contributor

@ihcsim ihcsim commented Dec 7, 2024

Problem:

There is a parity gap between the VIP configuration of the ISO installation and the automatic installation modes. In the automatic installation mode, user can specify the VIP MAC and static IP addresses over DHCP. This allows user to use a static IP address as the cluster's VIP. This option isn't available in the ISO installation mode.

Solution:

This PR updates the VIP configuration page of the installation console with a new MAC Address field, to allow user to specify the VIP's MAC address in DHCP mode. The installer uses this MAC address to request for the specific static IP address over DHCP. If this field is left blank, the installer falls back to the current behaviour of determining the VIP and MAC address.

On the VIP page, the subsequent input panels that will be shown are based on the method selected by the user:

image

Choosing DHCP reveals both the MAC Address and VIP input panels:

image

Choosing Static reveals only the VIP input panel:

image

Related Issue:

harvester/harvester#6960.

Test plan:

Test Case 1 - Request For Static VIP Address Using Custom MAC Address

Follow the instructions in this gist to add custom MAC/IP address bindings to the local kvm dnsmasq.

On the VIP page, input the custom MAC address (32:34:1a:75:7f:64):

  • Expect the installer to receive the pre-configured static IP (192.168.122.39) from the DHCP server

image

Complete the rest of the installation setup to provision Harvester.

  • Expect the management node to be ready

Provision a worker node to join the cluster targeting the static VIP address.

  • Expect the worker to be successfully added to the cluster

Test Case 2 - Let Installer Determine The VIP and MAC Address

On the VIP page, leave the MAC and VIP addresses blank.

  • Expect the installer to receive a new VIP from the DHCP server with a new random MAC address

Complete the rest of the installation setup to provision Harvester.

  • Expect the installation to complete successfully

Provision a worker node to join the cluster via the static VIP address.

  • Expect the worker to be successfully added to the cluster

@ihcsim ihcsim requested a review from w13915984028 December 7, 2024 00:52
@ihcsim ihcsim changed the title feat: add VIP hardware address panel feat: add VIP mac address input panel Dec 7, 2024
@ihcsim
Copy link
Contributor Author

ihcsim commented Dec 7, 2024

@w13915984028 let me know what you think of this approach.

Copy link
Member

@w13915984028 w13915984028 left a comment

Choose a reason for hiding this comment

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

LGTM, thanks @ihcsim

@ihcsim ihcsim requested a review from ibrokethecloud December 9, 2024 17:20
@ihcsim ihcsim requested a review from bk201 December 20, 2024 19:09
Copy link
Member

@bk201 bk201 left a comment

Choose a reason for hiding this comment

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

lgtm!

@bk201 bk201 requested review from mingshuoqiu and removed request for ibrokethecloud December 23, 2024 01:02
Copy link
Contributor

@mingshuoqiu mingshuoqiu left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks

@bk201 bk201 merged commit 3e5a113 into harvester:master Dec 23, 2024
7 checks passed
@ihcsim ihcsim deleted the dhcp-vip-mac branch January 13, 2025 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants