@@ -17,8 +17,10 @@ import (
1717 "k8s.io/apimachinery/pkg/runtime/schema"
1818 "k8s.io/client-go/dynamic"
1919
20+ cniversion "github.com/containernetworking/cni/pkg/version"
2021 nadapi "github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1"
2122 nadclient "github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/client/clientset/versioned/typed/k8s.cni.cncf.io/v1"
23+ ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types"
2224
2325 kubeauthorizationv1 "k8s.io/api/authorization/v1"
2426 v1 "k8s.io/api/core/v1"
@@ -1524,6 +1526,32 @@ spec:
15241526`
15251527}
15261528
1529+ func assertNADConfig (nad * nadapi.NetworkAttachmentDefinition , expectedLegacyNetworkName , expectedNetworkName , expectedNadName string ) {
1530+ cniConfig := ovncnitypes.NetConf {}
1531+ err := json .Unmarshal ([]byte (nad .Spec .Config ), & cniConfig )
1532+ Expect (err ).NotTo (HaveOccurred ())
1533+
1534+ Expect (cniversion .GreaterThanOrEqualTo (cniConfig .CNIVersion , "1.0.0" )).To (BeTrue ())
1535+
1536+ jsonTemplate := `{
1537+ "cniVersion":"%s",
1538+ "type": "ovn-k8s-cni-overlay",
1539+ "name": "%s",
1540+ "netAttachDefName": "%s",
1541+ "topology": "layer2",
1542+ "role": "secondary",
1543+ "subnets": "10.100.0.0/16"
1544+ }`
1545+
1546+ nadJSONLegacy := fmt .Sprintf (jsonTemplate , cniConfig .CNIVersion , expectedLegacyNetworkName , expectedNadName )
1547+ nadJSON := fmt .Sprintf (jsonTemplate , cniConfig .CNIVersion , expectedNetworkName , expectedNadName )
1548+
1549+ ExpectWithOffset (1 , nad .Spec .Config ).To (SatisfyAny (
1550+ MatchJSON (nadJSONLegacy ),
1551+ MatchJSON (nadJSON ),
1552+ ))
1553+ }
1554+
15271555func assertNetAttachDefManifest (nadClient nadclient.K8sCniCncfIoV1Interface , namespace , udnName , udnUID string ) {
15281556 nad , err := nadClient .NetworkAttachmentDefinitions (namespace ).Get (context .Background (), udnName , metav1.GetOptions {})
15291557 Expect (err ).NotTo (HaveOccurred ())
@@ -1539,28 +1567,12 @@ func assertNetAttachDefManifest(nadClient nadclient.K8sCniCncfIoV1Interface, nam
15391567 Controller : pointer .Bool (true ),
15401568 }}))
15411569
1542- jsonTemplate := `{
1543- "cniVersion":"1.0.0",
1544- "type": "ovn-k8s-cni-overlay",
1545- "name": "%s",
1546- "netAttachDefName": "%s",
1547- "topology": "layer2",
1548- "role": "secondary",
1549- "subnets": "10.100.0.0/16"
1550- }`
1551-
15521570 // REMOVEME(trozet): after network name has been updated to use underscores in OVNK
15531571 expectedLegacyNetworkName := namespace + "." + udnName
15541572 expectedNetworkName := namespace + "_" + udnName
15551573 expectedNadName := namespace + "/" + udnName
15561574
1557- nadJSONLegacy := fmt .Sprintf (jsonTemplate , expectedLegacyNetworkName , expectedNadName )
1558- nadJSON := fmt .Sprintf (jsonTemplate , expectedNetworkName , expectedNadName )
1559-
1560- ExpectWithOffset (1 , nad .Spec .Config ).To (SatisfyAny (
1561- MatchJSON (nadJSONLegacy ),
1562- MatchJSON (nadJSON ),
1563- ))
1575+ assertNADConfig (nad , expectedLegacyNetworkName , expectedNetworkName , expectedNadName )
15641576}
15651577
15661578func validateUDNStatusReportsConsumers (client dynamic.Interface , udnNamesapce , udnName , expectedPodName string ) error {
@@ -1626,23 +1638,7 @@ func assertClusterNADManifest(nadClient nadclient.K8sCniCncfIoV1Interface, names
16261638 expectedNetworkName := "cluster_udn_" + udnName
16271639 expectedNadName := namespace + "/" + udnName
16281640
1629- jsonTemplate := `{
1630- "cniVersion":"1.0.0",
1631- "type": "ovn-k8s-cni-overlay",
1632- "name": "%s",
1633- "netAttachDefName": "%s",
1634- "topology": "layer2",
1635- "role": "secondary",
1636- "subnets": "10.100.0.0/16"
1637- }`
1638-
1639- nadJSONLegacy := fmt .Sprintf (jsonTemplate , expectedLegacyNetworkName , expectedNadName )
1640- nadJSON := fmt .Sprintf (jsonTemplate , expectedNetworkName , expectedNadName )
1641-
1642- ExpectWithOffset (1 , nad .Spec .Config ).To (SatisfyAny (
1643- MatchJSON (nadJSONLegacy ),
1644- MatchJSON (nadJSON ),
1645- ))
1641+ assertNADConfig (nad , expectedLegacyNetworkName , expectedNetworkName , expectedNadName )
16461642}
16471643
16481644func validateClusterUDNStatusReportsActiveNamespacesFunc (client dynamic.Interface , cUDNName string , expectedActiveNsNames ... string ) func () error {
0 commit comments