Adding a healthcheck to chartmuseum in AWS Fargate
• 166 words • 1 min • updated
Assume that you have a Chartmuseum container running in AWS Fargate.
Chartmuseum is a repository for helm charts. AWS Fargate is an Amazon service to run containers (“serverless”), being part of ECS (Elastic Container Service).
Problem statement: Add a container healthcheck to the chartmuseum task definition associated with the container.
The official
docs
suggest using curl:
["CMD-SHELL", "curl -f http://localhost/ || exit 1"]For Chartmuseum specifically we’re interested in its /health endpoint, as per
this reference:
["CMD-SHELL", "curl -f http://localhost/health || exit 1"]But we’re using port 8080:
["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"]If you use this healthcheck for the official chartmuseum image
(ghcr.io/helm/chartmuseum) it will fail, because the Alpine Linux environment
it uses does not contain curl.
A straightforward fix is to use wget instead:
["CMD-SHELL", "wget -q --spider http://localhost:8080/health || exit 1"]--spider is needed because we do not want to download anything, -q is
optional and short for “quiet”.
The /health endpoint merely returns a simple JSON:
{"healthy":true}References: https://stackoverflow.com/questions/47722898/how-can-i-make-a-docker-healthcheck-with-wget-instead-of-curl