|
1 |
| -This repository is a quick way to get the Tinkerbell stack up and running. |
| 1 | +# Quick-Starts |
2 | 2 |
|
3 |
| -Currently it supports: |
| 3 | +The following quick-start guides will walk you through standing up the Tinkerbell stack. |
| 4 | +There are a few options for this. |
| 5 | +Pick the one that works best for you. |
4 | 6 |
|
5 |
| -1. Vagrant with libvirt and VirtualBox |
6 |
| -2. Terraform on Packet |
| 7 | +## Options |
7 | 8 |
|
8 |
| -Tinkerbell is made of different components: osie, boots, tink-server, |
9 |
| -tink-worker and so on. Currently they are under heavy development and we are |
10 |
| -working around the release process for all the components. |
| 9 | +- [Vagrant and VirtualBox](docs/quickstarts/VAGRANTVBOX.md) |
| 10 | +- [Vagrant and Libvirt](docs/quickstarts/VAGRANTLVIRT.md) |
| 11 | +- [Docker Compose](docs/quickstarts/COMPOSE.md) |
| 12 | +- [Terraform and Equinix Metal](docs/quickstarts/TERRAFORMEM.md) |
| 13 | +- [Kubernetes](docs/quickstarts/KUBERNETES.md) |
| 14 | +- [Multipass](docs/quickstarts/MULTIPASS.md) |
11 | 15 |
|
12 |
| -We need a way to serve a version of Tinkerbell that you can use and we know what |
13 |
| -is running the hood. Sandbox runs a pinned version for all the components via |
14 |
| -commit sha. In this way as a user you won't be effected (ideally) from new code |
15 |
| -that will may change a bit how Tinkerbell works. |
| 16 | +## Next Steps |
16 | 17 |
|
17 |
| -We are keeping the number of breaking changes as low as possible but in the current |
18 |
| -state they are expected. |
| 18 | +Now that you have a Tinkerbell stack up and running, you can start provisioning machines. |
| 19 | +Tinkerbell.org has a [list of guides](https://docs.tinkerbell.org/deploying-operating-systems/the-deployment/) for provisioning machines. |
| 20 | +You can also create your own. |
| 21 | +The following docs will help you get started. |
19 | 22 |
|
20 |
| -## Binary release |
| 23 | +1. [Create Hardware Data](https://docs.tinkerbell.org/setup/local-vagrant/#creating-the-workers-hardware-data) |
| 24 | +2. [Create a Template](https://docs.tinkerbell.org/setup/local-vagrant/#creating-a-template) |
| 25 | +3. [Create a Workflow](https://docs.tinkerbell.org/setup/local-vagrant/#creating-the-workflow) |
21 | 26 |
|
22 |
| -As part of a new release for sandbox we want to push binaries to GitHub Release |
23 |
| -in this way the community will be able to use them if needed. |
| 27 | +### In the Sandbox |
24 | 28 |
|
25 |
| -We build Docker images across many architectures, each of them in its own |
26 |
| -repository: boots, hegel, tink and so on. |
| 29 | +1. Create your own templates |
27 | 30 |
|
28 |
| -Sandbox is just a collection of those services and we follow the same pattern |
29 |
| -for getting binaries as well. |
| 31 | + ```bash |
| 32 | + docker exec -i compose_tink-cli_1 tink template create < ./custom-template.yaml |
| 33 | + ``` |
30 | 34 |
|
31 |
| -There is a go program available in `./cmd/getbinariesfromquay/main.go`. You can |
32 |
| -run it with `go run` or build it with `go build`: |
| 35 | +2. Upload any container images you want to use in the templates to the internal registry |
33 | 36 |
|
34 |
| -```terminal |
35 |
| -$ go run cmd/getbinariesfromquay/main.go -h |
36 |
| - -binary-to-copy string |
37 |
| - The location of the binary you want to copy from inside the image. (default "/usr/bin/hegel") |
38 |
| - -image string |
39 |
| - The image you want to download binaries from. It has to be a multi stage image. (default "docker://quay.io/tinkerbell/hegel") |
40 |
| - -out string |
41 |
| - The directory that will be used to store the release binaries (default "./out") |
42 |
| - -program string |
43 |
| - The name of the program you are extracing binaries for. (eg tink-worker, hegel, tink-server, tink, boots) (default "hegel") |
44 |
| -``` |
| 37 | + ```bash |
| 38 | + docker run -it --rm quay.io/containers/skopeo copy --all --dest-tls-verify=false --dest-creds="admin":"Admin1234" docker://hello-world docker://192.168.50.4/hello-world |
| 39 | + ``` |
45 | 40 |
|
46 |
| -By default it uses the image running on Quay for Hegel and it gets the binary |
47 |
| -`/usr/bin/hegel` from there. The directory `./out` is used to store images and |
48 |
| -binaries inside `./out/releases`. |
| 41 | +3. Create a workflow |
49 | 42 |
|
50 |
| -To get the binaries for example for boots you can run: |
| 43 | + ```bash |
| 44 | + docker exec -i compose_tink-cli_1 tink workflow create -t <TEMPLATE ID> -r '{"device_1":"08:00:27:00:00:01"}') |
| 45 | + ``` |
51 | 46 |
|
52 |
| -```terminal |
53 |
| -$ go run cmd/getbinariesfromquay/main.go \ |
54 |
| - -binary-to-copy /usr/bin/boots \ |
55 |
| - -image docker://quay.io/tinkerbell/boots:sha-9625559b \ |
56 |
| - -program boots |
57 |
| -``` |
58 |
| - |
59 |
| -You will find them in `./out/release` |
| 47 | +4. Restart the machine to provision (if using the vagrant sandbox test machine this is done by running `vagrant destroy -f machine1 && vagrant up machine1`) |
0 commit comments