Skip to content

Commit 8550bae

Browse files
Merge pull request #90 from jacobweinstock/one-touch-sandbox
simplify the stand-up of a sandbox
2 parents 232cf79 + 699a601 commit 8550bae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+3000
-1382
lines changed

.github/workflows/tags.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/setup-go@v2
1414
with:
1515
go-version: "1.15.5"
16-
- run: ./script/release-binaries.sh
16+
- run: ./releases/script/release-binaries.sh
1717
name: get binaries
1818
- name: Create Release
1919
id: create_release
@@ -30,4 +30,4 @@ jobs:
3030
env:
3131
GITHUB_TOKEN: ${{ github.token }}
3232
with:
33-
asset_paths: '["./out/release/*"]'
33+
asset_paths: '["./releases/out/release/*"]'

.github/workflows/vagrant-packet.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ jobs:
1919
- name: Vagrant Test
2020
run: |
2121
export VAGRANT_DEFAULT_PROVIDER="virtualbox"
22-
go test --timeout 1h -v ./test/vagrant
22+
cd ./test/vagrant
23+
go test --timeout 1h -v ./

.gitignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
envrc
22
out
3-
.env
3+
!deploy/.env
4+
.vagrant
5+
deploy/compose/state/webroot/misc/osie/current/*
6+
deploy/compose/state/webroot/workflow/*
7+
!deploy/compose/state/webroot/misc/osie/current/.keep
8+
!deploy/compose/state/webroot/workflow/.keep
9+
deploy/compose/state/webroot/*.gz
10+
workflow_id.txt
11+
compose.tar.gz

README.md

Lines changed: 33 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,47 @@
1-
This repository is a quick way to get the Tinkerbell stack up and running.
1+
# Quick-Starts
22

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

5-
1. Vagrant with libvirt and VirtualBox
6-
2. Terraform on Packet
7+
## Options
78

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)
1115

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
1617

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

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)
2126

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
2428

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
2730

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+
```
3034

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
3336

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+
```
4540

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
4942

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+
```
5146

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`)

deploy/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

deploy/compose/.env

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#OSIE_DOWNLOAD_URL="https://tinkerbell-oss.s3.amazonaws.com/osie-uploads/osie-1790-23d78ea47f794d0e5c934b604579c26e5fce97f5.tar.gz"
2+
OSIE_DOWNLOAD_URL="https://github.com/tinkerbell/hook/releases/download/5.10.57/hook-x86_64.tar.gz"
3+
TINKERBELL_USE_HOOK="true"
4+
TINK_CLI_IMAGE="quay.io/tinkerbell/tink-cli:sha-8ea8a0e5"
5+
TINK_SERVER_IMAGE="quay.io/tinkerbell/tink:sha-8ea8a0e5"
6+
BOOTS_SERVER_IMAGE="quay.io/tinkerbell/boots:sha-94f43947"
7+
HEGEL_SERVER_IMAGE="quay.io/tinkerbell/hegel:sha-9f5da0a8"
8+
TINKERBELL_HARDWARE_MANIFEST="/manifests/hardware/hardware.json"
9+
TINKERBELL_TEMPLATE_MANIFEST="/manifests/template/ubuntu.yaml"
10+
TINKERBELL_HOST_IP=192.168.50.4
11+
TINKERBELL_CLIENT_IP=192.168.50.43
12+
TINKERBELL_CLIENT_MAC=08:00:27:9e:f5:3a

0 commit comments

Comments
 (0)