You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/development/dev_setup.md
+138Lines changed: 138 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,3 +71,141 @@ The local development environment can be deleted via
71
71
```shell
72
72
make kind-delete
73
73
```
74
+
75
+
### Connecting a Remote BMC in the Tilt Environment
76
+
77
+
By default, Tilt runs against a local Redfish mock server. To point the environment at real hardware instead, apply the following changes.
78
+
79
+
#### Prerequisites: Claim the server on its origin cluster
80
+
81
+
Before pointing your local environment at a real BMC, ensure the server is not being reconciled by another metal-operator instance. On the cluster that originally owns the server, create a `ServerMaintenance` to claim it and power it off:
> **Note:** All `kubectl` commands from this point on target the **local** Kind cluster.
111
+
112
+
#### 1. Replace the mockup endpoint with a real BMC resource
113
+
114
+
Edit `config/redfish-mockup/redfish_mockup_endpoint.yaml` to define a `BMC` resource targeting the real hardware:
115
+
116
+
```yaml
117
+
apiVersion: metal.ironcore.dev/v1alpha1
118
+
kind: BMC
119
+
metadata:
120
+
name: <node-name>
121
+
spec:
122
+
bmcSecretRef:
123
+
name: <node-name>
124
+
hostname: <bmc-hostname>
125
+
consoleProtocol:
126
+
name: SSH
127
+
port: 22
128
+
access:
129
+
ip: <bmc-ip>
130
+
protocol:
131
+
name: Redfish
132
+
port: 443
133
+
scheme: https
134
+
```
135
+
136
+
#### 2. Create a BMCSecret with credentials
137
+
138
+
Apply a `BMCSecret` with base64-encoded credentials for the BMC:
139
+
140
+
```yaml
141
+
apiVersion: metal.ironcore.dev/v1alpha1
142
+
kind: BMCSecret
143
+
metadata:
144
+
name: <node-name>
145
+
data:
146
+
username: <base64-encoded-username>
147
+
password: <base64-encoded-password>
148
+
```
149
+
150
+
#### 3. Enable HTTPS for the BMC connection
151
+
152
+
The manager defaults to `--insecure=true`, which uses plain HTTP. For a real BMC on port 443, set `--insecure=false` in the `Tiltfile` to use HTTPS instead:
153
+
154
+
```python
155
+
settings = {
156
+
"new_args": {
157
+
"metal": [
158
+
# ...
159
+
"--insecure=false",
160
+
],
161
+
}
162
+
}
163
+
```
164
+
165
+
#### 4. Claim the server with a ServerMaintenance
166
+
167
+
Once the `Server` resource has been discovered and is `Available`, create a `ServerMaintenance` to claim it for local development. This prevents the server from being allocated by other consumers and powers it off:
To get a shell-accessible manager image with `curl` and `ca-certificates` (useful for diagnosing BMC connectivity), switch the Tilt build target to `manager-debug`:
0 commit comments