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.yamlto 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-stackservice has the IP you specified in thevalues.yamlunder theEXTERNAL-IPcolumn:kubectl get svc -n tink-system
- Verify all pods are running:
- Download, convert, and serve the Ubuntu 22.04 (Jammy)
.imgfile.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.yamland/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.yamlfile. - Be sure your
workflow.yamlreferences the correcttemplateRefandhardwareRefCRD names and thedevice_1matches the mac address of the target machine. - See the
hardware.yaml,template.yaml, andworkflow.yamlfiles 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.