Understanding the Role of HELM and Spinnaker
This is a Q&A pulled from the Spinnaker Community Slack team, which we encourage you to join here.
Thank you for helping me understand the roles of Helm and Spinnaker.
As you might have guessed, I am very new to Helm. Currently, we are running our services in
Docker Swarm and we’re doing a POC on
Kubernetes + Spinnaker + Helm. Each of our service GitHub repo has a
Dockerfile which has
RUNs tasks, how can I translate those in
HELM Charts ?
FROM nginx COPY build /usr/share/nginx/html COPY entrypoint.sh / COPY nginx-default.conf /etc/nginx/conf.d/default.conf RUN apt-get update && apt-get install -y curl HEALTHCHECK --interval=30s --timeout=5s \ CMD curl -fkL http://localhost:8080/health || exit 1 RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["nginx", "-g", "daemon off;"] EXPOSE 80 EXPOSE 443
How and where can I write this in HELM Charts?
You may be getting the role of the Dockerfile and the Helm chart confused. Your Dockerfile is supposed to define the way you application runs and the environment required for it to run. When built, the Dockerfile produces a Docker image which is then run on Kubernetes. A Helm chart defines all of the Kubernetes resources needed to run your application. For example, a
Deployment is used to take your Docker image, run it (w/ multiple replicas) and make sure it stays available. You would then use a Helm chart to template this
Deployment so that it makes it easier to deploy the same thing across multiple environments.
We made a video explaining how it all fits together: which you can view here