@@ -21,10 +21,9 @@ The mini-lab is a small, virtual setup to locally run the metal-stack. It deploy
21
21
22
22
- Linux machine with hardware virtualization support
23
23
- kvm as hypervisor for the VMs (you can check through the ` kvm-ok ` command)
24
- - [ docker] ( https://www.docker.com/ ) >= 18.09 (for using kind and our deployment base image)
25
- - [ docker-compose] ( https://docs.docker.com/compose/ ) >= 2.0 (for ease of use and for parallelizing control plane and partition deployment)
26
- - [ kind] ( https://github.com/kubernetes-sigs/kind/releases ) == v0.15.0 (for hosting the metal control plane on a kubernetes cluster v1.25)
27
- - [ containerlab] ( https://containerlab.srlinux.dev/install/ ) == v0.25.1
24
+ - [ docker] ( https://www.docker.com/ ) >= 20.10.13 (for using kind and our deployment base image)
25
+ - [ kind] ( https://github.com/kubernetes-sigs/kind/releases ) == v0.20.0 (for hosting the metal control plane)
26
+ - [ containerlab] ( https://containerlab.srlinux.dev/install/ ) >= v0.47.1
28
27
- the lab creates a docker network on your host machine (` 172.17.0.1 ` ), this hopefully does not overlap with other networks you have
29
28
- (recommended) haveged to have enough random entropy (only needed if the PXE process does not work)
30
29
@@ -49,17 +48,12 @@ curl -fsSL https://get.docker.com | sh
49
48
sudo usermod -G docker -a ${USER}
50
49
51
50
# Install containerlab
52
- bash -c " $( curl -sL https://get.containerlab.dev) " -- -v 0.25.1
51
+ bash -c " $( curl -sL https://get.containerlab.dev) "
53
52
54
53
# Install kind (kubernetes in docker), for more details see https://kind.sigs.k8s.io/docs/user/quick-start/#installation
55
- sudo curl -Lo /usr/local/bin/kind " https://kind.sigs.k8s.io/dl/latest /kind-linux-amd64"
54
+ sudo curl -Lo /usr/local/bin/kind " https://kind.sigs.k8s.io/dl/v0.20.0 /kind-linux-amd64"
56
55
sudo chmod +x /usr/local/bin/kind
57
56
58
- # Install docker-compose, for more details see https://docs.docker.com/compose/install/
59
- sudo curl -Lo /usr/local/bin/docker-compose " https://github.com/docker/compose/releases/latest/download/docker-compose-$( uname -s) -$( uname -m) "
60
- sudo chmod +x /usr/local/bin/docker-compose
61
- ```
62
-
63
57
The following ports are used statically on your host machine:
64
58
65
59
| Port | Bind Address | Description |
92
86
After the deployment and waiting for a short amount of time, two machines in status `PXE booting` become visible through `metalctl machine ls`:
93
87
94
88
```bash
95
- docker- compose run --rm metalctl machine ls
89
+ docker compose run --rm metalctl machine ls
96
90
97
91
ID LAST EVENT WHEN AGE HOSTNAME PROJECT SIZE IMAGE PARTITION
98
92
e0ab02d2-27cd-5a5e-8efc-080ba80cf258 PXE Booting 3s
@@ -102,7 +96,7 @@ e0ab02d2-27cd-5a5e-8efc-080ba80cf258 PXE Booting 3s
102
96
Wait until the machines reach the waiting state:
103
97
104
98
```bash
105
- docker- compose run --rm metalctl machine ls
99
+ docker compose run --rm metalctl machine ls
106
100
107
101
ID LAST EVENT WHEN AGE HOSTNAME PROJECT SIZE IMAGE PARTITION
108
102
e0ab02d2-27cd-5a5e-8efc-080ba80cf258 Waiting 8s v1-small-x86 mini-lab
@@ -119,13 +113,13 @@ make machine
119
113
__Alternatively__, you may want to issue the `metalctl` commands on your own:
120
114
121
115
```bash
122
- docker- compose run --rm metalctl network allocate \
116
+ docker compose run --rm metalctl network allocate \
123
117
--partition mini-lab \
124
118
--project 00000000-0000-0000-0000-000000000000 \
125
119
--name user-private-network
126
120
127
121
# lookup the network ID and create a machine
128
- docker- compose run --rm metalctl machine create \
122
+ docker compose run --rm metalctl machine create \
129
123
--description test \
130
124
--name machine \
131
125
--hostname machine \
@@ -136,7 +130,7 @@ docker-compose run --rm metalctl machine create \
136
130
--networks <network-ID>
137
131
138
132
# create a firewall that is also connected to the virtual internet-mini-lab network
139
- docker- compose run --rm metalctl machine create \
133
+ docker compose run --rm metalctl machine create \
140
134
--description fw \
141
135
--name fw \
142
136
--hostname fw \
@@ -160,7 +154,7 @@ machine login:
160
154
Two machines are now installed and have status "Phoned Home"
161
155
162
156
```bash
163
- docker- compose run --rm metalctl machine ls
157
+ docker compose run --rm metalctl machine ls
164
158
ID LAST EVENT WHEN AGE HOSTNAME PROJECT SIZE IMAGE PARTITION
165
159
e0ab02d2-27cd-5a5e-8efc-080ba80cf258 Phoned Home 2s 21s machine 00000000-0000-0000-0000-000000000000 v1-small-x86 Ubuntu 20.04 20200331 mini-lab
166
160
2294c949-88f6-5390-8154-fa53d93a3313 Phoned Home 8s 18s fw 00000000-0000-0000-0000-000000000000 v1-small-x86 Firewall 2 Ubuntu 20200730 mini-lab
@@ -169,7 +163,7 @@ e0ab02d2-27cd-5a5e-8efc-080ba80cf258 Phoned Home 2s 21s machin
169
163
Login with user name metal and the console password from
170
164
171
165
```bash
172
- docker- compose run --rm metalctl machine consolepassword e0ab02d2-27cd-5a5e-8efc-080ba80cf258
166
+ docker compose run --rm metalctl machine consolepassword e0ab02d2-27cd-5a5e-8efc-080ba80cf258
173
167
```
174
168
175
169
If you want to access the firewall with SSH or have internet connectivity from the firewall and machine, you' ll need to have a static route configured that points to the leaf switches:
@@ -193,7 +187,7 @@ make cleanup
193
187
Reinstall a machine with
194
188
195
189
` ` ` bash
196
- docker- compose run --rm metalctl machine reinstall \
190
+ docker compose run --rm metalctl machine reinstall \
197
191
--image ubuntu-20.04 \
198
192
e0ab02d2-27cd-5a5e-8efc-080ba80cf258
199
193
` ` `
@@ -203,7 +197,7 @@ docker-compose run --rm metalctl machine reinstall \
203
197
Free a machine with ` make free-machine01` or
204
198
205
199
` ` ` bash
206
- docker- compose run --rm metalctl machine rm e0ab02d2-27cd-5a5e-8efc-080ba80cf258
200
+ docker compose run --rm metalctl machine rm e0ab02d2-27cd-5a5e-8efc-080ba80cf258
207
201
` ` `
208
202
209
203
# # Flavors
0 commit comments