|
44 | 44 | {{- $mergedVolumes := $jobConfig.volumes | default $baseTpl.volumes }} |
45 | 45 | {{- $mergedExtraContainers := $jobConfig.extraContainers | default $baseTpl.extraContainers }} |
46 | 46 | {{- $mergedNativeSidecarContainers := $jobConfig.nativeSidecarContainers | default $baseTpl.nativeSidecarContainers }} |
| 47 | + |
| 48 | + {{- /* telemetry-sidecar needs a shared emptyDir; values can't reliably keep it through fleet regenerators, so reconcile it here. */ -}} |
| 49 | + {{- $needsTelemetrySocket := false }} |
| 50 | + {{- range $sidecar := $mergedNativeSidecarContainers }} |
| 51 | + {{- range $vm := ($sidecar.volumeMounts | default list) }} |
| 52 | + {{- if eq $vm.name "telemetry-socket" }}{{- $needsTelemetrySocket = true }}{{- end }} |
| 53 | + {{- end }} |
| 54 | + {{- end }} |
| 55 | + {{- if $needsTelemetrySocket }} |
| 56 | + {{- $hasVolume := false }} |
| 57 | + {{- range $v := ($mergedVolumes | default list) }} |
| 58 | + {{- if eq $v.name "telemetry-socket" }}{{- $hasVolume = true }}{{- end }} |
| 59 | + {{- end }} |
| 60 | + {{- if not $hasVolume }} |
| 61 | + {{- $mergedVolumes = append ($mergedVolumes | default list) (dict "name" "telemetry-socket" "emptyDir" dict) }} |
| 62 | + {{- end }} |
| 63 | + {{- $hasMount := false }} |
| 64 | + {{- range $vm := ($mergedVolumeMounts | default list) }} |
| 65 | + {{- if eq $vm.name "telemetry-socket" }}{{- $hasMount = true }}{{- end }} |
| 66 | + {{- end }} |
| 67 | + {{- if not $hasMount }} |
| 68 | + {{- $mergedVolumeMounts = append ($mergedVolumeMounts | default list) (dict "name" "telemetry-socket" "mountPath" "/tmp/telemetry") }} |
| 69 | + {{- end }} |
| 70 | + {{- end }} |
| 71 | + |
47 | 72 | {{- /* Trunc at 48 for the random ID to be generated via API */ -}} |
48 | 73 | {{- $metadataName := kebabcase $jobName | trunc 48 }} |
49 | 74 |
|
@@ -129,7 +154,20 @@ data: |
129 | 154 | {{- end }} |
130 | 155 | {{- with $mergedNativeSidecarContainers }} |
131 | 156 | initContainers: |
132 | | - {{- toYaml . | nindent 12 }} |
| 157 | + {{- /* TARGET_CONTAINER tells the telemetry sidecar's log tailer which container to follow; the executor is hardcoded so we know the value. */ -}} |
| 158 | + {{- range $sidecar := . }} |
| 159 | + {{- $hasTargetContainer := false }} |
| 160 | + {{- range $env := ($sidecar.env | default list) }} |
| 161 | + {{- if eq $env.name "TARGET_CONTAINER" }} |
| 162 | + {{- $hasTargetContainer = true }} |
| 163 | + {{- end }} |
| 164 | + {{- end }} |
| 165 | + {{- $rendered := deepCopy $sidecar }} |
| 166 | + {{- if not $hasTargetContainer }} |
| 167 | + {{- $_ := set $rendered "env" (prepend ($sidecar.env | default list) (dict "name" "TARGET_CONTAINER" "value" "executor")) }} |
| 168 | + {{- end }} |
| 169 | + {{- list $rendered | toYaml | nindent 12 }} |
| 170 | + {{- end }} |
133 | 171 | {{- end }} |
134 | 172 | {{- with $mergedNodeSelector }} |
135 | 173 | nodeSelector: |
|
0 commit comments