Skip to content

Conversation

@rahulait
Copy link
Contributor

@rahulait rahulait commented Jul 23, 2025

What this PR does / why we need it:

This PR implements support for IPv6 SLAAC (Stateless Address Autoconfiguration) configuration for Linode machines by adding two new optional fields to LinodeMachineSpec: EnableSLAAC and IsPublicIPv6. When EnableSLAAC is enabled, instances can automatically configure IPv6 addresses, and IsPublicIPv6 determines whether these addresses are publicly routable.

  • Adds EnableSLAAC and IsPublicIPv6 fields to LinodeMachineSpec API
  • Refactors IPv6 configuration logic to support both SLAAC and traditional range-based configuration
  • Updates interface creation logic to handle SLAAC IPv6 configuration alongside existing range-based approach

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer:

TODOs:

  • squashed commits
  • includes documentation
  • adds unit tests
  • adds or updates e2e tests

@codecov
Copy link

codecov bot commented Jul 23, 2025

Codecov Report

Attention: Patch coverage is 75.55556% with 11 lines in your changes missing coverage. Please review.

Please upload report for BASE (main@f3b5e58). Learn more about missing BASE report.
Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
...nal/controller/linodemachine_controller_helpers.go 75.55% 8 Missing and 3 partials ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #809   +/-   ##
=======================================
  Coverage        ?   63.14%           
=======================================
  Files           ?       71           
  Lines           ?     7332           
  Branches        ?        0           
=======================================
  Hits            ?     4630           
  Misses          ?     2428           
  Partials        ?      274           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR implements support for IPv6 SLAAC (Stateless Address Autoconfiguration) configuration for Linode machines by adding a new IPv6CreateOptions struct with three optional fields: EnableSLAAC, EnableRanges, and IsPublicIPv6. The implementation refactors the existing IPv6 configuration logic to support both SLAAC and traditional range-based IPv6 configuration.

  • Adds new IPv6Options field to LinodeMachineSpec API with support for SLAAC and range-based IPv6 configuration
  • Refactors interface creation logic to handle both SLAAC and traditional IPv6 range configuration
  • Updates test cases to validate new IPv6 configuration options and interface expectations

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
api/v1alpha2/linodemachine_types.go Adds IPv6CreateOptions struct and IPv6Options field to LinodeMachineSpec
internal/controller/linodemachine_controller_helpers.go Refactors IPv6 configuration logic to support both SLAAC and ranges
internal/controller/linodemachine_controller_helpers_test.go Updates test validation and adds new test cases for IPv6 configuration
config/crd/bases/infrastructure.cluster.x-k8s.io_linodemachines.yaml Adds CRD definitions for new IPv6Options fields
config/crd/bases/infrastructure.cluster.x-k8s.io_linodemachinetemplates.yaml Adds CRD definitions for new IPv6Options fields in machine templates
api/v1alpha2/zz_generated.deepcopy.go Generated deep copy methods for IPv6CreateOptions
docs/src/reference/out.md Documents new IPv6CreateOptions API fields

Copy link
Contributor

@komer3 komer3 left a comment

Choose a reason for hiding this comment

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

LGTM!

@eljohnson92 eljohnson92 merged commit 54184a9 into main Jul 23, 2025
16 of 17 checks passed
@AshleyDumaine AshleyDumaine deleted the add-slaac-support branch September 9, 2025 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants