Conversation
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #12487 +/- ##
============================================
+ Coverage 17.84% 17.92% +0.08%
- Complexity 15980 16164 +184
============================================
Files 5929 5939 +10
Lines 531084 533262 +2178
Branches 64914 65252 +338
============================================
+ Hits 94783 95610 +827
- Misses 425686 426908 +1222
- Partials 10615 10744 +129
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 16471 |
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✖️ el8 ✖️ el9 ✔️ debian ✖️ suse15. SL-JID 16473 |
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 16475 |
|
@blueorangutan test keepEnv |
|
@nvazquez a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-15239)
|
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
There was a problem hiding this comment.
Pull request overview
This PR extends “IP conserve mode” behavior into VPC offerings and relaxes certain per-tier restrictions so that, when conserve mode is enabled, a VPC’s Source NAT public IP can be reused for additional services and public-IP rules can be created across multiple VPC tiers.
Changes:
- Add
conservemodeto VPC offerings end-to-end (DB schema/view/entity, API params/responses, UI create form + details). - Adjust backend rule/network selection and conflict checks to allow cross-tier usage in VPC conserve mode (PF/LB/firewall paths).
- Update UI logic for Public IP / PF / LB screens to reflect conserve-mode behavior (tier selection and tab availability).
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/src/views/offering/AddVpcOffering.vue | Adds a Conserve Mode switch and passes conservemode to createVPCOffering. |
| ui/src/views/network/PublicIpResource.vue | Changes tab filtering for VPC SourceNAT IPs based on VPC offering conserve mode. |
| ui/src/views/network/PortForwarding.vue | Allows tier selection when VPC conserve mode is enabled; uses VPC offering conserve mode flag. |
| ui/src/views/network/LoadBalancing.vue | Allows tier selection when VPC conserve mode is enabled; uses VPC offering conserve mode flag. |
| ui/src/config/section/offering.js | Shows conservemode in VPC offering details. |
| server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java | Relaxes cross-network firewall-rule conflict restriction for VPC conserve mode. |
| server/src/test/java/com/cloud/network/firewall/FirewallManagerTest.java | Updates unit test setup for new network lookup in conflict detection. |
| server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java | Threads a networkId parameter to support VPC-tier-aware LB creation. |
| engine/components-api/src/main/java/com/cloud/network/lb/LoadBalancingRulesManager.java | Updates API surface to include networkId parameter. |
| server/src/main/java/com/cloud/network/IpAddressManagerImpl.java | Adjusts Source NAT detection when associating IPs within VPCs. |
| api/src/main/java/org/apache/cloudstack/api/command/admin/vpc/CreateVPCOfferingCmd.java | Adds conservemode parameter for VPC offering creation. |
| engine/schema/src/main/java/com/cloud/network/vpc/VpcOfferingVO.java | Persists conserve_mode on VPC offerings. |
| engine/schema/src/main/resources/META-INF/db/schema-42210to42300.sql | Adds conserve_mode column to vpc_offerings. |
| engine/schema/src/main/resources/META-INF/db/views/cloud.vpc_offering_view.sql | Exposes conserve_mode via VPC offering DB view. |
| server/src/main/java/com/cloud/api/query/vo/VpcOfferingJoinVO.java | Exposes conserve_mode on the VPC offering join view VO. |
| server/src/main/java/com/cloud/api/query/dao/VpcOfferingJoinDaoImpl.java | Populates conserve mode in VpcOfferingResponse. |
| api/src/main/java/org/apache/cloudstack/api/response/VpcOfferingResponse.java | Adds conservemode field to VPC offering response. |
| api/src/main/java/org/apache/cloudstack/api/response/VpcResponse.java | Adds vpcofferingconservemode field to VPC response. |
| server/src/main/java/com/cloud/api/ApiResponseHelper.java | Sets vpcofferingconservemode in VPC response. |
| api/src/main/java/org/apache/cloudstack/api/ApiConstants.java | Adds vpcofferingconservemode constant. |
| api/src/main/java/com/cloud/network/vpc/VpcOffering.java | Adds isConserveMode() to VPC offering interface. |
| api/src/main/java/com/cloud/network/vpc/VpcProvisioningService.java | Extends createVpcOffering signature to include conserve mode. |
| server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java | Plumbs conserve mode into VPC offering creation/persist. |
| api/src/main/java/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java | Adjusts network-id resolution behavior for VPC IPs. |
| plugins/network-elements/elastic-loadbalancer/.../LoadBalanceRuleHandler.java | Updates LB manager call to include networkId. |
| plugins/network-elements/juniper-contrail/.../ContrailManagerImpl.java | Updates VPC offering creation call signature. |
Comments suppressed due to low confidence (1)
ui/src/views/network/PortForwarding.vue:649
- The networkId selection logic for createPortForwardingRule is inverted due to parentheses:
!('associatednetworkid' in this.resource || this.vpcConserveMode)becomes true only when BOTH there is no associated network AND conserve mode is false. This will incorrectly chooseassociatednetworkidwhen conserve mode is enabled (the opposite of what the UI/feature intends). Use the same condition used elsewhere in the file: no associated network OR vpcConserveMode => selectedTier; otherwise associatednetworkid.
this.loading = true
this.addVmModalVisible = false
const networkId = ('vpcid' in this.resource && (!('associatednetworkid' in this.resource || this.vpcConserveMode))) ? this.selectedTier : this.resource.associatednetworkid
postAPI('createPortForwardingRule', {
...this.newRule,
ipaddressid: this.resource.id,
networkid: networkId
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java
Outdated
Show resolved
Hide resolved
server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java
Outdated
Show resolved
Hide resolved
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16930 |
|
@blueorangutan test |
|
@nvazquez a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
[SF] Trillian Build Failed (tid-15519) |
|
[SF] Trillian Build Failed (tid-15520) |
|
[SF] Trillian test result (tid-15521)
|
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16948 |
|
@blueorangutan package |
|
@nvazquez a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 16950 |
|
@blueorangutan test |
|
@nvazquez a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
Description
This PR extends the conserve mode for VPCs tiers added on the previous PRs: #8309, #10744 by allowing:
This PR also introduces the following changes:
Fixes: #8317
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
How did you try to break this feature and the system with this change?