Skip to content

Conversation

@jackieluc
Copy link
Member

Reason for Change:

Add a simple default Windows SwiftV2 conflist for usage with Stateless CNI. SwiftV2 uses delegated NICs and has no need for AdditionalArgs like endpoint policies for OutBoundNAT, ROUTE, or ACL. This conflist would be bundled with Stateless CNI for Windows SwiftV2 in the official nuget package for partners to consume.

@jackieluc jackieluc requested a review from a team as a code owner November 24, 2025 22:45
Copilot finished reviewing on behalf of jackieluc November 24, 2025 22:47
Copy link
Contributor

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 adds a new CNI configuration list file for Windows SwiftV2 with Stateless CNI. SwiftV2 uses delegated NICs and simplifies the configuration by eliminating the need for endpoint policies (OutBoundNAT, ROUTE, ACL) that are required in other Windows configurations.

Key Changes

  • Adds azure-windows-swiftv2-stateless.conflist with simplified configuration for SwiftV2 on Windows
  • Uses CNI version 1.0.0 and azure-cns IPAM type
  • Configures DNS with Azure Wire Server nameserver (168.63.129.16)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 4 to 21
"type": "azure-vnet",
"mode": "bridge",
"bridge": "azure0",
"capabilities": {
"portMappings": true,
"dns": true
},
"ipam": {
"type": "azure-cns"
},
"dns": {
"Nameservers": [
"168.63.129.16"
],
"Search": [
"svc.cluster.local"
]
}
Copy link

Copilot AI Nov 24, 2025

Choose a reason for hiding this comment

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

This conflist file is missing the required plugins array structure. According to the CNI specification and all other conflist files in this repository, the configuration should have a plugins array containing the plugin configurations.

The structure should be:

{
    "cniVersion": "1.0.0",
    "name": "azure",
    "plugins": [
        {
            "type": "azure-vnet",
            "mode": "bridge",
            "bridge": "azure0",
            ...
        }
    ]
}

See cni/azure-windows-baremetal.conflist (lines 1-50) and cni/azure-windows-swift.conflist (lines 1-51) for examples of the correct structure.

Suggested change
"type": "azure-vnet",
"mode": "bridge",
"bridge": "azure0",
"capabilities": {
"portMappings": true,
"dns": true
},
"ipam": {
"type": "azure-cns"
},
"dns": {
"Nameservers": [
"168.63.129.16"
],
"Search": [
"svc.cluster.local"
]
}
"plugins": [
{
"type": "azure-vnet",
"mode": "bridge",
"bridge": "azure0",
"capabilities": {
"portMappings": true,
"dns": true
},
"ipam": {
"type": "azure-cns"
},
"dns": {
"Nameservers": [
"168.63.129.16"
],
"Search": [
"svc.cluster.local"
]
}
}
]

Copilot uses AI. Check for mistakes.
"168.63.129.16"
],
"Search": [
"svc.cluster.local"
Copy link
Member

Choose a reason for hiding this comment

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

do we need search? can remove this.

Copy link
Member Author

@jackieluc jackieluc Nov 25, 2025

Choose a reason for hiding this comment

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

we don't need Search functionally speaking for Standalone scenarios, but network_windows.go would error if there is a mismatch in length between NameServers and Search: https://github.com/jackieluc/azure-container-networking/blob/stateless-cni-conflist/cni/network/network_windows.go#L147-L150

"cniVersion": "1.0.0",
"name": "azure",
"type": "azure-vnet",
"mode": "bridge",
Copy link
Member

Choose a reason for hiding this comment

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

add "disableAsyncDelete": true

Copy link
Member Author

Choose a reason for hiding this comment

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

added

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.

2 participants