Skip to content

Commit ffe20a7

Browse files
committed
Reconcile command and env
1 parent 17545df commit ffe20a7

File tree

1 file changed

+57
-43
lines changed

1 file changed

+57
-43
lines changed

internal/controller/valkey_controller.go

Lines changed: 57 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"math/big"
2929
"net"
3030
"os"
31+
"reflect"
3132
"sort"
3233
"strconv"
3334
"strings"
@@ -2181,6 +2182,51 @@ func (r *ValkeyReconciler) upsertStatefulSet(ctx context.Context, valkey *hyperv
21812182
if valkey.Spec.Image != "" {
21822183
image = valkey.Spec.Image
21832184
}
2185+
2186+
podEnv := []corev1.EnvVar{
2187+
{
2188+
Name: "POD_NAME",
2189+
ValueFrom: &corev1.EnvVarSource{
2190+
FieldRef: &corev1.ObjectFieldSelector{
2191+
FieldPath: "metadata.name",
2192+
},
2193+
},
2194+
},
2195+
{
2196+
Name: "VALKEY_NODES",
2197+
Value: getNodeNames(valkey),
2198+
},
2199+
{
2200+
Name: "VALKEY_CLUSTER_PREFERRED_ENDPOINT_TYPE",
2201+
Value: endpointType,
2202+
},
2203+
{
2204+
Name: "VALKEY_AOF_ENABLED",
2205+
Value: "yes",
2206+
},
2207+
{
2208+
Name: "VALKEY_TLS_ENABLED",
2209+
Value: tls,
2210+
},
2211+
{
2212+
Name: "VALKEY_PORT_NUMBER",
2213+
Value: "6379",
2214+
},
2215+
{
2216+
Name: "POD_IP",
2217+
ValueFrom: &corev1.EnvVarSource{
2218+
FieldRef: &corev1.ObjectFieldSelector{
2219+
FieldPath: "status.podIP",
2220+
},
2221+
},
2222+
},
2223+
}
2224+
podCommand := []string{
2225+
"sh",
2226+
"-c",
2227+
"exec valkey-server /valkey/etc/valkey.conf --protected-mode no --cluster-announce-ip $POD_IP",
2228+
}
2229+
21842230
sts := &appsv1.StatefulSet{
21852231
ObjectMeta: metav1.ObjectMeta{
21862232
Name: valkey.Name,
@@ -2252,49 +2298,8 @@ func (r *ValkeyReconciler) upsertStatefulSet(ctx context.Context, valkey *hyperv
22522298
},
22532299
Name: Valkey,
22542300
ImagePullPolicy: "IfNotPresent",
2255-
Command: []string{
2256-
"sh",
2257-
"-c",
2258-
"exec valkey-server /valkey/etc/valkey.conf --protected-mode no --cluster-announce-ip $POD_IP",
2259-
},
2260-
Env: []corev1.EnvVar{
2261-
{
2262-
Name: "POD_NAME",
2263-
ValueFrom: &corev1.EnvVarSource{
2264-
FieldRef: &corev1.ObjectFieldSelector{
2265-
FieldPath: "metadata.name",
2266-
},
2267-
},
2268-
},
2269-
{
2270-
Name: "VALKEY_NODES",
2271-
Value: getNodeNames(valkey),
2272-
},
2273-
{
2274-
Name: "VALKEY_CLUSTER_PREFERRED_ENDPOINT_TYPE",
2275-
Value: endpointType,
2276-
},
2277-
{
2278-
Name: "VALKEY_AOF_ENABLED",
2279-
Value: "yes",
2280-
},
2281-
{
2282-
Name: "VALKEY_TLS_ENABLED",
2283-
Value: tls,
2284-
},
2285-
{
2286-
Name: "VALKEY_PORT_NUMBER",
2287-
Value: "6379",
2288-
},
2289-
{
2290-
Name: "POD_IP",
2291-
ValueFrom: &corev1.EnvVarSource{
2292-
FieldRef: &corev1.ObjectFieldSelector{
2293-
FieldPath: "status.podIP",
2294-
},
2295-
},
2296-
},
2297-
},
2301+
Command: podCommand,
2302+
Env: podEnv,
22982303
Ports: []corev1.ContainerPort{
22992304
{
23002305
Name: "tcp-valkey",
@@ -2571,6 +2576,15 @@ func (r *ValkeyReconciler) upsertStatefulSet(ctx context.Context, valkey *hyperv
25712576
}
25722577
r.Recorder.Event(valkey, "Normal", "Updated", fmt.Sprintf("StatefulSet %s/%s is updated (exporter image)", valkey.Namespace, valkey.Name))
25732578
}
2579+
if !reflect.DeepEqual(sts.Spec.Template.Spec.Containers[0].Command, podCommand) || !reflect.DeepEqual(sts.Spec.Template.Spec.Containers[0].Env, podEnv) {
2580+
sts.Spec.Template.Spec.Containers[0].Command = podCommand
2581+
sts.Spec.Template.Spec.Containers[0].Env = podEnv
2582+
if err := r.Update(ctx, sts); err != nil {
2583+
logger.Error(err, "failed to update statefulset command/env")
2584+
return err
2585+
}
2586+
r.Recorder.Event(valkey, "Normal", "Updated", fmt.Sprintf("StatefulSet %s/%s is updated (command/env)", valkey.Namespace, valkey.Name))
2587+
}
25742588

25752589
return nil
25762590
}

0 commit comments

Comments
 (0)