github.com/cilium/cilium@v1.16.2/operator/pkg/ciliumenvoyconfig/annotations_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package ciliumenvoyconfig 5 6 import ( 7 "testing" 8 9 envoy_config_cluster "github.com/cilium/proxy/go/envoy/config/cluster/v3" 10 http_connection_manager_v3 "github.com/cilium/proxy/go/envoy/extensions/filters/network/http_connection_manager/v3" 11 "github.com/stretchr/testify/require" 12 13 slim_corev1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/api/core/v1" 14 slim_metav1 "github.com/cilium/cilium/pkg/k8s/slim/k8s/apis/meta/v1" 15 ) 16 17 func Test_grpcHttpConnectionManagerMutator(t *testing.T) { 18 input := &http_connection_manager_v3.HttpConnectionManager{} 19 20 t.Run("mutate upgradeConfigs", func(t *testing.T) { 21 res := grpcHttpConnectionManagerMutator(&slim_corev1.Service{ 22 ObjectMeta: slim_metav1.ObjectMeta{}, 23 })(input) 24 require.NotNil(t, res) 25 require.NotNil(t, res.UpgradeConfigs) 26 }) 27 } 28 29 func Test_lbModeClusterMutator(t *testing.T) { 30 input := &envoy_config_cluster.Cluster{} 31 32 t.Run("no ops", func(t *testing.T) { 33 res := lbModeClusterMutator(&slim_corev1.Service{})(input) 34 require.NotNil(t, res) 35 require.Equal(t, envoy_config_cluster.Cluster_LbPolicy(0), res.LbPolicy) 36 }) 37 38 t.Run("mutate lb policy to round robin", func(t *testing.T) { 39 res := lbModeClusterMutator(&slim_corev1.Service{ 40 ObjectMeta: slim_metav1.ObjectMeta{ 41 Annotations: map[string]string{ 42 lbModeAnnotation: "round_robin", 43 }, 44 }, 45 })(input) 46 require.NotNil(t, res) 47 require.NotNil(t, res.LbPolicy, envoy_config_cluster.Cluster_ROUND_ROBIN) 48 }) 49 50 t.Run("mutate lb policy to least request", func(t *testing.T) { 51 res := lbModeClusterMutator(&slim_corev1.Service{ 52 ObjectMeta: slim_metav1.ObjectMeta{ 53 Annotations: map[string]string{ 54 lbModeAnnotation: "least_request", 55 }, 56 }, 57 })(input) 58 require.NotNil(t, res) 59 require.NotNil(t, res.LbPolicy, envoy_config_cluster.Cluster_LEAST_REQUEST) 60 }) 61 }