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
+137Lines changed: 137 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,3 +71,140 @@ 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
+
```
134
+
135
+
#### 2. Create a BMCSecret with credentials
136
+
137
+
Apply a `BMCSecret` with base64-encoded credentials for the BMC:
138
+
139
+
```yaml
140
+
apiVersion: metal.ironcore.dev/v1alpha1
141
+
kind: BMCSecret
142
+
metadata:
143
+
name: <node-name>
144
+
data:
145
+
username: <base64-encoded-username>
146
+
password: <base64-encoded-password>
147
+
```
148
+
149
+
#### 3. Disable TLS enforcement
150
+
151
+
In `Tiltfile`, add `--insecure=false` to the manager args so the controller does not enforce strict TLS when connecting to the BMC:
152
+
153
+
```python
154
+
settings = {
155
+
"new_args": {
156
+
"metal": [
157
+
# ...
158
+
"--insecure=false",
159
+
],
160
+
}
161
+
}
162
+
```
163
+
164
+
#### 4. Claim the server with a ServerMaintenance
165
+
166
+
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