考虑以下模板:
...
{{- range .Values.additionalMetrics }}
- interval: 1m
port: {{ .name }}
{{- end }}
...
Run Code Online (Sandbox Code Playgroud)
以及以下值:
additionalMetrics:
- name: kamon-metrics
port: 9096
targetPort: 9096
Run Code Online (Sandbox Code Playgroud)
如果additionalMetrics缺少,helm 模板将会失败。
是否可以先检查是否additionalMetrics已定义,然后检查值的范围,否则继续?
注意:没有首先进行 if 和 then range,但在一种情况下,例如这不是我想要的解决方案:
{{- if .Values.additionalMetrics }}
{{- range .Values.additionalMetrics }}
- name: {{ .name }}
port: {{ .port }}
targetPort: {{ .targetPort }}
{{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
提前致谢
我刚刚为 Aerospike 编写了一个恢复过程,它看起来非常适合 Airflow,我正在为 Scala 寻找一些 Airflow Operator。
目前的实施:
// Register UDF for LUT
aerospikeService.registerUDFs(
"""
|function getLUT(r)
| return record.last_update_time(r)
|end
|""".stripMargin
)
// Pause Connectors
k8sService.pauseConnectors()
// Get Connectors, Current Offsets and LUTs
val connectors = k8sService.getConnectors()
val originalState = kafkaService.getCurrentState()
val startTime = aerospikeService.calculateCurrentLUTs()
// Delete Connectors
k8sService.deleteConnectors()
kafkaService.resetOffsets(originalState)
// Recreate Connectors
k8sService.createConnectors(connectors)
// Wait until Offset Reached
kafkaService.waitTillOriginalOffsetsReached(originalState)
// Truncate
aerospikeService.truncate(startTime, durableDelete)
// Cleanup
aerospikeService.cleanup()
Run Code Online (Sandbox Code Playgroud)