Share

Here in this blog, we will walk you through the steps to use Helm Charts to install Spinnaker on a local Kubernetes cluster (installed using Minikube).  Before getting started with installation steps we take a quick look at what each of these applications is:  

  • Helm is a tool that streamlines installing and managing Kubernetes applications. Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.
  • Kubernetes (k8s) is an open-source container orchestration system for automating computer application deployment, scaling, and management.
  • Minikube provides a way to install and run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.
  • Kubectl is the Kubernetes command-line tool that allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs.

Prerequisites of installing Spinnaker on Kubernetes

Before installing Spinnaker on Minikube using Helm we need to ensure the following: 

  1. Minikube is cluster ready and kubectl can connect to that cluster
  2. Helm 3.2.4 is installed

Install Kubectl

We need the latest version of Kubectl to manage the Kubernetes cluster.

To install kubectl, run the following commands.

				
					sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2 curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
				
			

Install Minikube

To install Minikube, run the following commands.

				
					curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
				
			

Start the Minikube Cluster

Take into consideration that Spinnaker is composed out of multiple microservices, so you’ll need to allocate sufficient memory and CPU to run it locally.

  • To start the Minikube cluster, run the following command.
				
					minikube start
				
			

Once it is started we will be able to see the following information.

minikube starts   

  • If you need to stop the Minikube cluster, run the following command.
				
					minikube stop
				
			
  • To check the Minikube cluster status, run the following command.
				
					minikube status
				
			

Install Helm on Kubernetes

Before installing the Spinnaker, we need to set up Helm on Kubernetes. 

Download the latest release of Helm binary and move it to the bin folder.

  • Install helm from the URL link as given below.
				
					https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
				
			
  • Uncompress the tar file using Untar command as given below.
				
					tar -xf helm-v3.2.4-linux-amd64.tar.gz
    mv linux-amd64/helm /usr/local/bin/helm
				
			
  • To check the helm version run the following command.
				
					helm version
				
			

Deploy Spinnaker into Kubernetes using Helm

With Minikube and Helm installed and running, now we can install Spinnaker. Since it is available as a Helm Chart, we will get this done through a couple of steps. 

Before we deploy Spinnaker, we need a configuration file in YAML format, which will provide the initial set of configuration values. 

  • To get this file from the Github Spinnaker Helm Chart repository run the following command.
				
					wget https://raw.githubusercontent.com/helm/charts/master/stable/spinnaker/values.yaml
      helm repo add stable https://kubernetes-charts.storage.googleapis.com/
				
			
  • Change the Spinnaker Version and tag values in values.yaml file as given below.
				
					vi values.yaml
      halyard:
       spinnaker Version: 1.21.2
        image:
          repository: gcr.io/spinnaker-marketplace/halyard
          tag: 1.38.0
				
			
  • Install Spinnaker using the following command.
				
					helm install spinnaker stable/spinnaker -f values.yaml      kubectl get pods
				
			
  • All the spinnaker components should be in running state as given below:

    Spinnaker components running

  • Once all the spinnaker components are running, get the kubectl service.
				
					run kubectl get svc
				
			
  • Edit the svc of the spin-deck to access the Spinnaker UI.
				
					kubectl edit svc spin-deck 
				
			
  • Change the service value from ClusterIP to NordPort as given below:
				
					spec:
      clusterIP: 10.107.78.199
      externalTrafficPolicy: Cluster
      ports:
      - nodePort: 31529
        port: 9000
        protocol: TCP
        targetPort: 9000
      selector:
       app: spin
    cluster: spin-deck
     sessionAffinity: None
     type: NordPort
     status:
     loadBalancer: {}
				
			
  • For accessing the spinnaker, run the following command.
				
					minikube IP
      bhaveen@bhaveen-Vostro-3590:~/spinnaker$ minikube IP
      192.168.99.100
				
			

accessing Spinnaker

  • Spinnaker can now be accessed from the browser by visiting
				
					192.168.99.100:31529 (spin-deck node ip)
				
			
Spinnaker UI
Spinnaker UI
Still Facing Issues ?
Get Expert Help in Minutes!!

0 Comments

Submit a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.