From c23b9fa8a22de19887ca662cd408090d4601468d Mon Sep 17 00:00:00 2001 From: wkd-woo Date: Fri, 23 Feb 2024 17:05:03 +0900 Subject: [PATCH] test: leader/follower endpoint(svc) --- k8sutils/services_test.go | 84 +++++++++++++++++++++++++++++++++++++++ wkd-woo/operator.yaml | 16 ++++++++ 2 files changed, 100 insertions(+) create mode 100644 wkd-woo/operator.yaml diff --git a/k8sutils/services_test.go b/k8sutils/services_test.go index 786783944..384f850ef 100644 --- a/k8sutils/services_test.go +++ b/k8sutils/services_test.go @@ -229,6 +229,90 @@ func TestGenerateServiceDef(t *testing.T) { }, }, }, + { + name: "Test redis-replication-leader with ClusterIP service type and metrics enabled", + serviceMeta: metav1.ObjectMeta{ + Name: "test-redis-replication-leader", + Labels: map[string]string{ + "redis-role": "master", + }, + }, + enableMetrics: defaultExporterPortProvider, + headless: false, + serviceType: "ClusterIP", + port: redisPort, + expected: &corev1.Service{ + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "test-redis-replication-leader", + Labels: map[string]string{ + "redis-role": "master", + }, + OwnerReferences: []metav1.OwnerReference{ + {}, + }, + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "redis-client", + Port: redisPort, + TargetPort: intstr.FromInt(int(redisPort)), + Protocol: corev1.ProtocolTCP, + }, + *enableMetricsPort(redisExporterPort), + }, + Selector: map[string]string{"redis-role": "master"}, + ClusterIP: "", + Type: corev1.ServiceTypeClusterIP, + }, + }, + }, + { + name: "Test redis-replication-follower with ClusterIP service type and metrics enabled", + serviceMeta: metav1.ObjectMeta{ + Name: "test-redis-replication-follower", + Labels: map[string]string{ + "redis-role": "slave", + }, + }, + enableMetrics: defaultExporterPortProvider, + headless: false, + serviceType: "ClusterIP", + port: redisPort, + expected: &corev1.Service{ + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "test-redis-replication-follower", + Labels: map[string]string{ + "redis-role": "slave", + }, + OwnerReferences: []metav1.OwnerReference{ + {}, + }, + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "redis-client", + Port: redisPort, + TargetPort: intstr.FromInt(int(redisPort)), + Protocol: corev1.ProtocolTCP, + }, + *enableMetricsPort(redisExporterPort), + }, + Selector: map[string]string{"redis-role": "slave"}, + ClusterIP: "", + Type: corev1.ServiceTypeClusterIP, + }, + }, + }, } for _, tt := range tests { diff --git a/wkd-woo/operator.yaml b/wkd-woo/operator.yaml new file mode 100644 index 000000000..4f321f398 --- /dev/null +++ b/wkd-woo/operator.yaml @@ -0,0 +1,16 @@ +--- +redisOperator: + name: redis-operator + imageName: wkdwoo/redis-operator + imageTag: "replication-endpoint" + imagePullPolicy: IfNotPresent + + podAnnotations: {} + podLabels: + duty: operator + + extraArgs: [] + + watch_namespace: "redis-operator" + env: [] + webhook: false \ No newline at end of file