Skip to content

Commit

Permalink
Fix an issue when generating ExternalEntity from ExternalNode (#4259)
Browse files Browse the repository at this point in the history
1. Use group/apiversion for ownerreference when creating ExternalEntity
   from ExternalNode
2. Add unit tests for ExternalNodeController

Signed-off-by: wenyingd <[email protected]>
  • Loading branch information
wenyingd authored Oct 17, 2022
1 parent c358373 commit 549e0fb
Show file tree
Hide file tree
Showing 2 changed files with 679 additions and 2 deletions.
16 changes: 14 additions & 2 deletions pkg/controller/externalnode/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,19 @@ func (c *ExternalNodeController) updateExternalNode(preEn *v1alpha1.ExternalNode
func (c *ExternalNodeController) updateExternalEntity(ee *v1alpha2.ExternalEntity) error {
// resourceVersion must be specified for update operation,
// so it gets the existing ExternalEntity and modifies the changed fields.
existingEE, _ := c.crdClient.CrdV1alpha2().ExternalEntities(ee.Namespace).Get(context.TODO(), ee.Name, metav1.GetOptions{})
existingEE, err := c.crdClient.CrdV1alpha2().ExternalEntities(ee.Namespace).Get(context.TODO(), ee.Name, metav1.GetOptions{})
if err != nil {
if errors.IsNotFound(err) {
_, err = c.crdClient.CrdV1alpha2().ExternalEntities(ee.Namespace).Create(context.TODO(), ee, metav1.CreateOptions{})
if err != nil {
klog.ErrorS(err, "Failed to create ExternalEntity", "entityName", ee.Name, "entityNameSpace", ee.Namespace)
return err
}
return nil
}
klog.ErrorS(err, "Failed to get ExternalEntity", "entityName", ee.Name, "entityNameSpace", ee.Namespace)
return err
}
isChanged := false
if !reflect.DeepEqual(existingEE.Spec, ee.Spec) {
existingEE.Spec = ee.Spec
Expand Down Expand Up @@ -349,7 +361,7 @@ func (c *ExternalNodeController) deleteExternalEntity(namespace string, name str

func genExternalEntity(eeName string, en *v1alpha1.ExternalNode) (*v1alpha2.ExternalEntity, error) {
ownerRef := &metav1.OwnerReference{
APIVersion: "v1alpha1",
APIVersion: "crd.antrea.io/v1alpha1",
Kind: "ExternalNode",
Name: en.GetName(),
UID: en.GetUID(),
Expand Down
Loading

0 comments on commit 549e0fb

Please sign in to comment.