Skip to content

Commit 4763277

Browse files
authored
feat: consolidate probe overrides into probes arg for KubernetesSentinel (#637)
Replace individual startupProbe field with a unified probes object supporting startup, liveness, and readiness probe configuration.
1 parent f6b0fb4 commit 4763277

1 file changed

Lines changed: 34 additions & 10 deletions

File tree

src/resources/redis/kubernetesSentinel.ts

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,22 @@ import {
2222
KubernetesSentinelMonitor,
2323
} from './kubernetesSentinelMonitor';
2424

25+
export type ProbeConfig = Input<{
26+
enabled?: Input<boolean>;
27+
initialDelaySeconds?: Input<number>;
28+
periodSeconds?: Input<number>;
29+
timeoutSeconds?: Input<number>;
30+
failureThreshold?: Input<number>;
31+
successThreshold?: Input<number>;
32+
}>;
33+
2534
export type K8sRedisSentinelArgs = CommonK8sRedisArgs & {
2635
spot?: Spot;
27-
startupProbe?: Input<{
28-
enabled?: Input<boolean>;
29-
initialDelaySeconds?: Input<number>;
30-
periodSeconds?: Input<number>;
31-
timeoutSeconds?: Input<number>;
32-
failureThreshold?: Input<number>;
33-
successThreshold?: Input<number>;
34-
}>;
36+
probes?: {
37+
startup?: ProbeConfig;
38+
liveness?: ProbeConfig;
39+
readiness?: ProbeConfig;
40+
};
3541
monitor?: {
3642
enabled?: boolean;
3743
image?: K8sRedisSentinelMonitorArgs['image'];
@@ -73,6 +79,10 @@ export class KubernetesSentinel extends ComponentResource {
7379
priorityClassName: configurePriorityClass(args),
7480
};
7581

82+
const startupProbeArg = args.probes?.startup;
83+
const livenessProbeArg = args.probes?.liveness;
84+
const readinessProbeArg = args.probes?.readiness;
85+
7686
this.chart = new helm.v4.Chart(
7787
name,
7888
{
@@ -130,8 +140,20 @@ export class KubernetesSentinel extends ComponentResource {
130140
enabled: !!args.authKey,
131141
password: args.authKey,
132142
},
133-
replica: all([args.spot, args.isAdhocEnv, args.startupProbe]).apply(
134-
([spot, isAdhocEnv, startupProbe]) => {
143+
replica: all([
144+
args.spot,
145+
args.isAdhocEnv,
146+
startupProbeArg,
147+
livenessProbeArg,
148+
readinessProbeArg,
149+
]).apply(
150+
([
151+
spot,
152+
isAdhocEnv,
153+
startupProbe,
154+
livenessProbe,
155+
readinessProbe,
156+
]) => {
135157
const { tolerations, affinity } = getSpotSettings(
136158
spot,
137159
isAdhocEnv,
@@ -142,6 +164,8 @@ export class KubernetesSentinel extends ComponentResource {
142164
tolerations,
143165
affinity,
144166
...(startupProbe && { startupProbe }),
167+
...(livenessProbe && { livenessProbe }),
168+
...(readinessProbe && { readinessProbe }),
145169
topologySpreadConstraints: [
146170
{
147171
maxSkew: 1,

0 commit comments

Comments
 (0)