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  }