kubernetes 舵面图中的一个问题的修正

myzjeezk  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(132)

目前,我正在检查生命周期挂钩是否启用,如果是,请添加一些额外的延迟:

{{- $delay := hasKey .Values "shutdownDelay" | ternary .Values.shutdownDelay 30 }}
{{- $graceperiod := hasKey .Values.service "terminationGracePeriodSeconds" | ternary .Values.service.terminationGracePeriodSeconds 120 }}
{{- $extraDelay := .Values.lifecycleHooks.enabled | ternary $delay 0 }}
terminationGracePeriodSeconds: {{ add $graceperiod $extraDelay }}

我想介绍一个用例,其中如果.Values.lifecycleHooks.postStart.Values.lifecycleHooks.prestart具有某些值,则不应在terminationGracePeriodSeconds中添加额外延迟
values.yaml看起来像

#shutdownDelay: 40
lifecycleHooks:
  enabled: true
  postStart:
    exec:
      command:
        - echo
        - "Run after starting container"
  preStop:
    exec:
      command:
        - echo
        - "Run before stopping container"

service:
  terminationGracePeriodSeconds: 120

因此,如果poststop钩子值像values.yaml中那样定义,那么它不应该给terminationperiod增加任何延迟。

h6my8fg2

h6my8fg21#

这个问题不是很具体,但如果你正在寻找“如果”条件与“和”/“或”,下面是一个例子可能是有帮助的。
根据您的解释,假设poststart/prestart的值为,如果lifecycle.poststart为“false”且lifecycle.prestart为“true”,则terminationgracepideseconds不会有额外延迟,否则条件将有额外延迟

{{- if and (eq .Values.lifecycleHooks.postStart "false") (eq .Values.lifecycleHooks.prestart "true")) }}
terminationGracePeriodSeconds: {{ $graceperiod }}
{{- else}}
terminationGracePeriodSeconds: {{ add $graceperiod $extraDelay }}
{{- end }}

conditional or
{{- if or (eq .Values.lifecycleHooks.postStart "false") (eq .Values.lifecycleHooks.prestart "true")) }}
terminationGracePeriodSeconds: {{ add $graceperiod $extraDelay }}
{{- end }}

相关问题