Skip to content

Docker image with helm and kubectl on top of alpine linux with bash

License

Notifications You must be signed in to change notification settings

mshahmalaki/swiss-knife

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swiss Knife Docker image for DevOps

ci Docker Stars Docker Pulls

  • helm v3.10.0
  • kubectl v1.25.2
  • alpine v3.16
  • terraform v1.3.0
  • yq v4.27.5
  • docker-compose-templer v1.1.0
  • jinja v3.1.2

Overview

This lightweight alpine docker image provides kubectl and helm binaries for working with a Kubernetes cluster. A local configured kubectl is a prerequisite to use helm per helm documentation. This image is useful for general helm administration such as deploying helm charts and managing releases. It is also perfect for any automated deployment pipeline needing to use helm which supports docker images such as Concourse CI, Jenkins on Kubernetes, Travis CI, and Circle CI. Having bash installed allows for better support for troubleshooting by being able to exec / terminal in and run desired shell scripts. Git installed allows installation of helm plugins.

If it is desired to only use kubectl and have kubectl as the entry command (versus this image as bash entry command), I recommend checking out this image instead: lachlanevenson/kubectl

Run

Example to just run helm on entry:
docker run --rm mshahmalaki/swiss-knife helm
By default kubectl will try to use /root/.kube/config file for connection to the kubernetes cluster, but does not exist by default in the image.

Example for use with personal administration or troubleshooting with volume mount for kubeconfig files:
docker run -it -v ~/.kube:/root/.kube mshahmalaki/swiss-knife
The -v maps your host docker machine Kubernetes configuration directory (~/.kube) to the container's Kubernetes configuration directory (root/.kube).

Build

For doing a manual local build of the image:
make docker_build