Document a vanilla deployment of backstage via helm.
This commit is contained in:
		@ -4,3 +4,67 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For the second part of our meetup demo session we want to briefly explore the [[https://backstage.io][backstage]] internal developer platform.
 | 
					For the second part of our meetup demo session we want to briefly explore the [[https://backstage.io][backstage]] internal developer platform.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					An Internal Developer Platform (IDP) is the sum of all the tech and tools that a platform engineering team binds together to pave golden paths for developers. IDPs lower cognitive load across the engineering organization and enable developer self-service, without abstracting away context from developers or making the underlying tech inaccessible.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Install kubernetes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					We want to deploy backstage as a container onto our cluster so the first thing we need to do is ensure we have a cluster available. We can set one up on our machine with a one liner.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Install kubernetes cluster
 | 
				
			||||||
 | 
					#+begin_src tmate :socket /tmp/james.tmate.tmate
 | 
				
			||||||
 | 
					curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--write-kubeconfig-mode 0644" sh -s - && cp /etc/rancher/k3s/k3s.yaml ~/.kube/config && chown $USER:$USER ~/.kube/config
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Before we proceed let's test our cluster is running successfully by checking the node state with ~kubectl~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Verify cluster state
 | 
				
			||||||
 | 
					#+begin_src tmate :socket /tmp/james.tmate.tmate
 | 
				
			||||||
 | 
					kubectl get nodes
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					We should see a single node in the ~Ready~ state after running the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+begin_src bash
 | 
				
			||||||
 | 
					NAME           STATUS   ROLES                  AGE     VERSION
 | 
				
			||||||
 | 
					james-laptop   Ready    control-plane,master   3m46s   v1.25.6+k3s1
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Install backstage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once our cluster is running we can deploy backstage with ~helm~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Deploy backstage
 | 
				
			||||||
 | 
					#+begin_src tmate :socket /tmp/james.tmate.tmate
 | 
				
			||||||
 | 
					# Clone chart source
 | 
				
			||||||
 | 
					git clone https://github.com/backstage/charts.git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ensure namespace exists
 | 
				
			||||||
 | 
					kubectl create namespace backstage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Obtain any dependant charts
 | 
				
			||||||
 | 
					cd charts/charts/backstage && helm dependency update
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Deploy backstage via helm chart
 | 
				
			||||||
 | 
					helm upgrade --install --namespace backstage backstage .
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After a short wait for deployment we can check the health with ~kubectl~ and should see the pod running successfully
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Check pod health
 | 
				
			||||||
 | 
					#+begin_src tmate :socket /tmp/james.tmate.tmate
 | 
				
			||||||
 | 
					kubectl get pods --namespace backstage
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If our pod is running successfully we can then use ~kubectl port forward~ to access the deployed pod temporarily in our browser.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+NAME: Access deployment
 | 
				
			||||||
 | 
					#+begin_src tmate :socket /tmp/james.tmate.tmate
 | 
				
			||||||
 | 
					kubectl port-forward service/backstage --namespace backstage 7007
 | 
				
			||||||
 | 
					#+end_src
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user