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.
 | 
			
		||||
 | 
			
		||||
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