Demo of installing Ubuntu 22.04 on an HP EliteDesk.
- Satisfy Stack installation prerequisites.
k3d cluster create --network host --no-lb --k3s-arg "--disable=traefik,servicelb" --k3s-arg "--kube-apiserver-arg=feature-gates=MixedProtocolLBService=true" --host-pid-mode
- Command pulled from the sandbox repo.
- Clone the Tinkerbell chart repo.
git clone https://github.com/tinkerbell/charts.git
- Customize the stack template
values.yaml
to your environment.cd chart/tinkerbell
- Follow the guidance in the chart README.md.
- Install the Tinkerbell stack.
-
helm dependency build stack/ trusted_proxies=$(kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}' | tr ' ' ',') helm install stack-release stack/ --create-namespace --namespace tink-system --wait --set "boots.trustedProxies=${trusted_proxies}" --set "hegel.trustedProxies=${trusted_proxies}"
-
- Verify the stack is up and running.
- Verify all pods are running:
kubectl get pods -n tink-system
- Verify the
tink-stack
service has the IP you specified in thevalues.yaml
under theEXTERNAL-IP
column:kubectl get svc -n tink-system
- Verify all pods are running:
- Download, convert, and serve the Ubuntu 22.04 (Jammy)
.img
file.kubectl apply -n tink-system -f ~/repos/tinkerbell/sandbox/deploy/stack/helm/manifests/ubuntu-download.yaml
- This makes the Jammy file available via the Tinkerbell stack web server and can be used in your template.yaml file.
http://EXTERNAL-IP:8080/jammy-server-cloudimg-amd64.raw.gz
- You can inspect the
ubuntu-download.yaml
and/or read this doc for the manual steps of performing this download and convert.
- Customize the 3 CRDs(hardware, template, workflow) to your environment.
- Example CRDs can be found in the Tink repo.
- If you use
quay.io/tinkerbell-actions/image2disk:v1.0.0
, addIMG_URL: "http://EXTERNAL-IP:8080/jammy-server-cloudimg-amd64.raw.gz"
environment variable in yourtemplate.yaml
file. - Be sure your
workflow.yaml
references the correcttemplateRef
andhardwareRef
CRD names and thedevice_1
matches the mac address of the target machine. - See the
hardware.yaml
,template.yaml
, andworkflow.yaml
files below.
- Apply the Tinkerbell CRDs to the cluster.
-
kubectl apply -f hardware.yaml kubectl apply -f template.yaml kubectl apply -f workflow.yaml
-
- Watch the workflow.
kubectl get workflow -n tink-system --watch
- Reboot the machine.
- Once the workflow is complete(
STATE_SUCCESS
), reboot the machine again. - Log into the machine. This can be done via the console or via SSH.