Skip to content
This repository has been archived by the owner on Aug 9, 2022. It is now read-only.

Commit

Permalink
Add owner reference on ManagedOSVersion
Browse files Browse the repository at this point in the history
Signed-off-by: David Cassany <dcassany@suse.com>
  • Loading branch information
davidcassany committed Apr 5, 2022
1 parent f67199e commit 1902d6d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 23 deletions.
17 changes: 12 additions & 5 deletions pkg/services/version_syncer.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,24 @@ func sync(c *clients.Clients, namespace string) error {
if err != nil {
return err
}

if _, ok := versions[c.Namespace]; !ok {
versions[c.Namespace] = []provv1.ManagedOSVersion{}
}

versions[c.Namespace] = append(versions[c.Namespace], vers...)
blockDel := false
for _, v := range vers {
vcpy := v.DeepCopy()
vcpy.ObjectMeta.Namespace = c.Namespace
ownRef := *metav1.NewControllerRef(&c, provv1.SchemeGroupVersion.WithKind("ManagedOSVersionChannel"))
ownRef.BlockOwnerDeletion = &blockDel
vcpy.ObjectMeta.OwnerReferences = []metav1.OwnerReference{ownRef}
versions[c.Namespace] = append(versions[c.Namespace], *vcpy)
}
}

// TODO: collect all errors
for ns, vv := range versions {
for _, vv := range versions {
for _, v := range vv {
cli := c.OS.ManagedOSVersion()

Expand All @@ -93,9 +102,7 @@ func sync(c *clients.Clients, namespace string) error {
logrus.Debugf("there is already a version defined for %s(%s)", v.Name, v.Spec.Version)
continue
}
vcpy := v.DeepCopy()
vcpy.ObjectMeta.Namespace = ns
_, err = cli.Create(vcpy)
_, err = cli.Create(&v)
if err != nil {
return err
}
Expand Down
37 changes: 19 additions & 18 deletions tests/e2e/managedosversionchannel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,11 @@ import (
)

var _ = Describe("ManagedOSVersionChannel e2e tests", func() {
k := kubectl.New()
Context("Create ManagedOSVersions from JSON", func() {
var k *kubectl.Kubectl

Context("Create ManagedOSVersions from JSON", func() {
BeforeEach(func() {
By("Create a ManagedOSVersionChannel")
ui := catalog.NewManagedOSVersionChannel(
"testchannel",
"json",
map[string]interface{}{},
)

Eventually(func() error {
return k.ApplyYAML("fleet-default", "testchannel", ui)
}, 2*time.Minute, 2*time.Second).ShouldNot(HaveOccurred())
})

AfterEach(func() {
kubectl.New().Delete("managedosversionchannel", "-n", "fleet-default", "testchannel")
k = kubectl.New()
})

It("Creates a list of ManagedOSVersion", func() {
Expand Down Expand Up @@ -93,8 +80,6 @@ var _ = Describe("ManagedOSVersionChannel e2e tests", func() {

http.Server(ctx, bridgeIP+":9999", string(b))

//time.Sleep(9000 * time.Second)

By("Create a ManagedOSVersionChannel")
ui := catalog.NewManagedOSVersionChannel(
"testchannel",
Expand All @@ -104,6 +89,7 @@ var _ = Describe("ManagedOSVersionChannel e2e tests", func() {

err = k.ApplyYAML("fleet-default", "testchannel", ui)
Expect(err).ShouldNot(HaveOccurred())
defer k.Delete("managedosversionchannel", "-n", "fleet-default", "testchannel")

r, err := kubectl.GetData("fleet-default", "ManagedOSVersionChannel", "testchannel", `jsonpath={.spec.type}`)
if err != nil {
Expand All @@ -112,6 +98,7 @@ var _ = Describe("ManagedOSVersionChannel e2e tests", func() {

Expect(string(r)).To(Equal("json"))

By("Check new ManagedOSVersions are created")
Eventually(func() string {
r, err := kubectl.GetData("fleet-default", "ManagedOSVersion", "v1", `jsonpath={.spec.metadata.upgradeImage}`)
if err != nil {
Expand All @@ -132,6 +119,20 @@ var _ = Describe("ManagedOSVersionChannel e2e tests", func() {
}, 1*time.Minute, 2*time.Second).Should(
Equal("registry.com/repository/image:v2"),
)

err = k.Delete("managedosversionchannel", "-n", "fleet-default", "testchannel")
Expect(err).ShouldNot(HaveOccurred())

By("Check ManagedOSVersions are deleted on channel clean up")
Eventually(func() string {
r, err := kubectl.GetData("fleet-default", "ManagedOSVersion", "v2", `jsonpath={}`)
if err != nil {
fmt.Println(err)
}
return string(r)
}, 1*time.Minute, 2*time.Second).Should(
Equal(""),
)
})
})
})

0 comments on commit 1902d6d

Please sign in to comment.