Skip to content

TPT-4654: Support NodeBalancer types and backend connectivity - #890

Open
zliang-akamai wants to merge 3 commits into
devfrom
zhiwei/TPT-4654/nodebalancer-backend-connectivity
Open

zliang-akamai wants to merge 3 commits into
devfrom
zhiwei/TPT-4654/nodebalancer-backend-connectivity

Conversation

@zliang-akamai

@zliang-akamai zliang-akamai commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

📝 Description

Add Ansible support for the NodeBalancer API changes covered by linode/linode_api4-python#735 and linode/linode_api4-python#745.

  • Accept creation-only type, backend_connectivity, and vpcs options without sending them in update requests.
  • Document IPv6 backend addressing and the returned type, backend_connectivity, and read-only backend_ipv6_prefix metadata.
  • Add a standalone Premium NodeBalancer creation test in us-mia that validates returned metadata.

Per-node subnet support is intentionally left for a follow-up. The unavailable /backend_acl endpoint is not added.

✔️ How to Test

Run make test-int TEST_SUITE=nodebalancer_premium.

@zliang-akamai
zliang-akamai requested review from a team as code owners October 14, 2026 20:18
@zliang-akamai zliang-akamai added the new-feature for new features in the changelog. label Oct 14, 2026
@zliang-akamai
zliang-akamai requested review from jcamelon and mawilk90 and a balanced review from Copilot and removed request for a team October 14, 2026 20:18
Comment thread plugins/modules/nodebalancer.py Fixed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Returned connectivity metadata can be stale, and unconditional gated-feature tests break integration runs on accounts without access.

3 open findings
What changed in this PR

Adds NodeBalancer type and backend connectivity support to the linode.cloud collection.

Changes:

  • Accepts creation-only type, connectivity, and VPC options without including them in updates.
  • Documents backend addressing and returned metadata.
  • Adds unit coverage and extends populated integration tests for Premium/IPv6 behavior.
File Description
tests/​unit/​modules/​test_nodebalancer.py Tests creation forwarding and update exclusions.
tests/​integration/​targets/​nodebalancer_populated/​tasks/​main.yaml Exercises Premium/IPv6 behavior and metadata consistency.
plugins/​modules/​nodebalancer.py Adds creation-only options and addressing documentation.
plugins/​modules/​nodebalancer_node.py Documents connectivity-specific backend addresses.
plugins/​module_utils/​doc_fragments/​nodebalancer.py Adds connectivity examples and return metadata.
plugins/​module_utils/​doc_fragments/​nodebalancer_node.py Clarifies the example’s address comment.
plugins/​module_utils/​doc_fragments/​nodebalancer_list.py Adds returned metadata examples.
docs/​modules/​nodebalancer.md Updates generated options, examples, and returns.
docs/​modules/​nodebalancer_node.md Updates generated addressing guidance.
docs/​modules/​nodebalancer_list.md Documents additional list metadata.
docs/​modules/​nodebalancer_info.md Documents additional info metadata.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tests/integration/targets/nodebalancer_populated/tasks/main.yaml Outdated
Comment thread plugins/modules/nodebalancer.py
Comment thread plugins/module_utils/doc_fragments/nodebalancer.py
@zliang-akamai
zliang-akamai requested review from a team and lgarber-akamai and removed request for a team and jcamelon October 14, 2026 20:26
@zliang-akamai
zliang-akamai force-pushed the zhiwei/TPT-4654/nodebalancer-backend-connectivity branch 2 times, most recently from 1ad03e7 to 64880f6 Compare October 15, 2026 02:13
@zliang-akamai
zliang-akamai requested a balanced review from Copilot October 15, 2026 02:13
@zliang-akamai
zliang-akamai force-pushed the zhiwei/TPT-4654/nodebalancer-backend-connectivity branch from 64880f6 to 8ab6350 Compare October 15, 2026 02:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Populated IPv6 behavior and post-backend metadata refresh lack the promised integration coverage.

1 open finding
3 resolved since last review

🧠 Review effort: Balanced

Comment thread tests/integration/targets/nodebalancer_premium/tasks/main.yaml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Full integration runs still execute the Premium target without an opt-in guard, causing failures on accounts without access.

1 open finding
1 resolved since last review

🧠 Review effort: Balanced

Comment thread tests/integration/targets/nodebalancer_premium/tasks/main.yaml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

Only a non-blocking API-version documentation inconsistency remains; no blocking implementation issues were identified.

1 open finding
1 resolved since last review

🧠 Review effort: Balanced

Comment thread plugins/modules/nodebalancer.py Outdated
Comment on lines +307 to +308
"This cannot be changed after creation. This option requires "
"v4beta API access and may not be available to all accounts.",
@@ -49,8 +49,10 @@
type=FieldType.string,

@lgarber-akamai lgarber-akamai Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need to support a node-level subnet_id field both here and in the nodebalancer module? Not entirely sure myself

https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, it will be a separate PR for an easier review

@lgarber-akamai lgarber-akamai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM and tests are passing!

@mawilk90
mawilk90 requested review from psnoch-akamai and removed request for mawilk90 October 20, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-feature for new features in the changelog.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants