Skip to content

Commit

Permalink
rlp e2e tests: fix sync issues
Browse files Browse the repository at this point in the history
  • Loading branch information
eguzki committed Nov 24, 2023
1 parent 099f4f2 commit 541b35f
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 10 deletions.
36 changes: 27 additions & 9 deletions controllers/ratelimitpolicy_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ package controllers
import (
"context"
"encoding/json"
"fmt"
"time"

. "github.com/onsi/ginkgo/v2"
Expand Down Expand Up @@ -143,8 +142,8 @@ var _ = Describe("RateLimitPolicy controller", func() {
}))

// Check wasm plugin
wpName := fmt.Sprintf("kuadrant-%s", gwName)
wasmPluginKey := client.ObjectKey{Name: wpName, Namespace: testNamespace}
wasmPluginKey := client.ObjectKey{Name: rlptools.WASMPluginName(gateway), Namespace: testNamespace}
Eventually(testWasmPluginIsAvailable(wasmPluginKey), time.Minute, 5*time.Second).To(BeTrue())
existingWasmPlugin := &istioclientgoextensionv1alpha1.WasmPlugin{}
err = k8sClient.Get(context.Background(), wasmPluginKey, existingWasmPlugin)
// must exist
Expand Down Expand Up @@ -312,8 +311,8 @@ var _ = Describe("RateLimitPolicy controller", func() {
Eventually(testRLPIsAvailable(rlpKey), time.Minute, 5*time.Second).Should(BeTrue())

// Check wasm plugin
wpName := fmt.Sprintf("kuadrant-%s", gwName)
wasmPluginKey := client.ObjectKey{Name: wpName, Namespace: testNamespace}
wasmPluginKey := client.ObjectKey{Name: rlptools.WASMPluginName(gateway), Namespace: testNamespace}
Eventually(testWasmPluginIsAvailable(wasmPluginKey), time.Minute, 5*time.Second).To(BeTrue())
existingWasmPlugin := &istioclientgoextensionv1alpha1.WasmPlugin{}
err = k8sClient.Get(context.Background(), wasmPluginKey, existingWasmPlugin)
// must exist
Expand Down Expand Up @@ -482,8 +481,8 @@ var _ = Describe("RateLimitPolicy controller", func() {
}))

// Check wasm plugin
wpName := fmt.Sprintf("kuadrant-%s", gwName)
wasmPluginKey := client.ObjectKey{Name: wpName, Namespace: testNamespace}
wasmPluginKey := client.ObjectKey{Name: rlptools.WASMPluginName(gateway), Namespace: testNamespace}
Eventually(testWasmPluginIsAvailable(wasmPluginKey), time.Minute, 5*time.Second).To(BeTrue())
existingWasmPlugin := &istioclientgoextensionv1alpha1.WasmPlugin{}
err = k8sClient.Get(context.Background(), wasmPluginKey, existingWasmPlugin)
// must exist
Expand Down Expand Up @@ -600,8 +599,9 @@ var _ = Describe("RateLimitPolicy controller", func() {
}))

// Check wasm plugin
wpName := fmt.Sprintf("kuadrant-%s", gwName)
wasmPluginKey := client.ObjectKey{Name: wpName, Namespace: testNamespace}
wasmPluginKey := client.ObjectKey{Name: rlptools.WASMPluginName(gateway), Namespace: testNamespace}
// Wait a bit to catch cases where wasmplugin is created and takes a bit to be created
Eventually(testWasmPluginIsAvailable(wasmPluginKey), 20*time.Second, 5*time.Second).To(BeFalse())
existingWasmPlugin := &istioclientgoextensionv1alpha1.WasmPlugin{}
// must not exist
err = k8sClient.Get(context.Background(), wasmPluginKey, existingWasmPlugin)
Expand Down Expand Up @@ -633,3 +633,21 @@ func testRLPIsAvailable(rlpKey client.ObjectKey) func() bool {
return true
}
}

func testWasmPluginIsAvailable(key client.ObjectKey) func() bool {
return func() bool {
wp := &istioclientgoextensionv1alpha1.WasmPlugin{}
err := k8sClient.Get(context.Background(), key, wp)
if err != nil {
return false
}

// Unfortunately, WasmPlugin does not have status yet
// Leaving this here for future use
//if !meta.IsStatusConditionTrue(wp.Status.Conditions, "Available") {
// return false
//}

return true
}
}
2 changes: 1 addition & 1 deletion controllers/ratelimitpolicy_istio_wasmplugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (r *RateLimitPolicyReconciler) gatewayWASMPlugin(ctx context.Context, gw co
APIVersion: "extensions.istio.io/v1alpha1",
},
ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("kuadrant-%s", gw.Name),
Name: rlptools.WASMPluginName(gw.Gateway),
Namespace: gw.Namespace,
},
Spec: istioextensionsv1alpha1.WasmPlugin{
Expand Down
4 changes: 4 additions & 0 deletions pkg/rlptools/wasm_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -285,3 +285,7 @@ func WASMPluginMutator(existingObj, desiredObj client.Object) (bool, error) {

return update, nil
}

func WASMPluginName(gw *gatewayapiv1.Gateway) string {
return fmt.Sprintf("kuadrant-%s", gw.Name)
}

0 comments on commit 541b35f

Please sign in to comment.