Helm Chart - ehealth-job
This is the default helm chart for all jobs running on the eHealth platform.
Istio specific notes
If you deploy a job in an Istio-enabled namespace you have two options to make it work correctly.
Solution 1 (recommended): Use envoy-preflight
Using envoy-preflight ensures that the job does not start until the Istio sidecar is ready and that the sidecar shuts down when the application exits.
If your Dockerfile for your application looks like this pseudo code:
FROM .. your existing Dockerfile
ENTRYPOINT ["existing"]
Then update it to this:
FROM golang:1.13 as envoy-preflight-builder
WORKDIR /go/src
RUN mkdir monzo
WORKDIR /go/src/monzo
RUN git clone https://github.com/monzo/envoy-preflight
WORKDIR /go/src/monzo/envoy-preflight
RUN git reset --hard $ad8dc56e19eeb06e556d2687d5b6f97407b31352
RUN CGO_ENABLED=0 go build && \
chmod +x envoy-preflight
FROM .. your existing Dockerfile
# Copy envoy-preflight
COPY --from=envoy-preflight-builder /go/src/monzo/envoy-preflight/envoy-preflight /usr/local/bin/envoy-preflight
ENTRYPOINT ["envoy-preflight", "existing"]
Ensure that the job is deployed using these Helm values for the job Helm chart:
job:
overrideIstioInjection: false
environment:
ENVOY_ADMIN_API: http://localhost:15000
ENVOY_KILL_API: http://localhost:15020/quitquitquit
ALWAYS_KILL_ENVOY: true
Solution 2: Disable Istio sidecar injection
Deploy using these Helm values for the job Helm chart:
This option is not available for jobs that communicate with other services on the platform, as the job itself would need to establish mTLS communication with the other service.