Skip to content

Commit f3064ab

Browse files
tosin2013claude
andcommitted
fix(dag): Add sudo to kcli commands in freeipa_deployment DAG
The E2E test workflow creates an SSH connection with the github-runner user, but kcli requires root/sudo privileges to manage VMs via libvirt. This fix adds sudo to all kcli commands in the FreeIPA deployment DAG: - validate_environment: sudo kcli list images, sudo kcli --version - create_freeipa_vm: sudo kcli info/create vm - wait_for_vm: sudo kcli info vm - prepare_ansible: sudo kcli info vm - install_freeipa: sudo kcli info vm - validate_freeipa: sudo kcli info vm - destroy_freeipa: sudo kcli info/delete vm Fixes E2E test failure: https://github.com/Qubinode/qubinode_navigator/actions/runs/20721447025 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent ac74fc0 commit f3064ab

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

airflow/dags/freeipa_deployment.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,9 @@ def decide_action(**context):
110110
echo "[ERROR] kcli not installed"
111111
exit 1
112112
fi
113-
echo "[OK] kcli installed: $(kcli --version 2>&1 | head -1)"
113+
echo "[OK] kcli installed: $(sudo kcli --version 2>&1 | head -1)"
114114
115-
if kcli list images | grep -q "$IMAGE_NAME"; then
115+
if sudo kcli list images | grep -q "$IMAGE_NAME"; then
116116
echo "[OK] Image $IMAGE_NAME available"
117117
else
118118
echo "[WARN] Image $IMAGE_NAME not found, will download during VM creation"
@@ -160,9 +160,9 @@ def decide_action(**context):
160160
161161
VM_NAME=freeipa
162162
163-
if kcli info vm $VM_NAME &>/dev/null; then
163+
if sudo kcli info vm $VM_NAME &>/dev/null; then
164164
echo "[WARN] VM $VM_NAME already exists"
165-
kcli info vm $VM_NAME
165+
sudo kcli info vm $VM_NAME
166166
exit 0
167167
fi
168168
@@ -172,7 +172,7 @@ def decide_action(**context):
172172
echo " CPUs: 2"
173173
echo " Disk: 50 GB"
174174
175-
kcli create vm $VM_NAME \
175+
sudo kcli create vm $VM_NAME \
176176
-i $IMAGE_NAME \
177177
-P memory=4096 \
178178
-P numcpus=2 \
@@ -185,7 +185,7 @@ def decide_action(**context):
185185
186186
echo ""
187187
echo "[OK] VM created successfully"
188-
kcli info vm $VM_NAME
188+
sudo kcli info vm $VM_NAME
189189
""",
190190
cmd_timeout=600,
191191
dag=dag,
@@ -207,7 +207,7 @@ def decide_action(**context):
207207
echo "Waiting for VM to get IP address..."
208208
209209
for i in $(seq 1 $MAX_ATTEMPTS); do
210-
VM_INFO=$(kcli info vm $VM_NAME 2>/dev/null)
210+
VM_INFO=$(sudo kcli info vm $VM_NAME 2>/dev/null)
211211
IP=$(echo "$VM_INFO" | grep "^ip:" | awk "{print \\$2}")
212212
213213
if [ -n "$IP" ] && [ "$IP" != "None" ] && [ "$IP" != "" ]; then
@@ -263,7 +263,7 @@ def decide_action(**context):
263263
264264
# Get IP via kcli on host
265265
VM_NAME="freeipa"
266-
IP=$(kcli info vm $VM_NAME 2>/dev/null | grep "^ip:" | awk "{{{{print \\$2}}}}")
266+
IP=$(sudo kcli info vm $VM_NAME 2>/dev/null | grep "^ip:" | awk "{{{{print \\$2}}}}")
267267
268268
if [ -z "$IP" ] || [ "$IP" == "None" ]; then
269269
echo "[ERROR] Could not get VM IP"
@@ -348,7 +348,7 @@ def decide_action(**context):
348348
DNS_FORWARDER="{{{{ params.dns_forwarder }}}}"
349349
350350
VM_NAME="freeipa"
351-
IP=$(kcli info vm $VM_NAME 2>/dev/null | grep "^ip:" | awk "{{{{print \\$2}}}}")
351+
IP=$(sudo kcli info vm $VM_NAME 2>/dev/null | grep "^ip:" | awk "{{{{print \\$2}}}}")
352352
353353
if [ -z "$IP" ]; then
354354
echo "[ERROR] Could not get VM IP"
@@ -404,7 +404,7 @@ def decide_action(**context):
404404
RUN_ANSIBLE="{{ params.run_ansible_install }}"
405405
406406
VM_NAME="freeipa"
407-
IP=$(kcli info vm $VM_NAME 2>/dev/null | grep "^ip:" | awk "{print \\$2}")
407+
IP=$(sudo kcli info vm $VM_NAME 2>/dev/null | grep "^ip:" | awk "{print \\$2}")
408408
409409
echo "Checking FreeIPA services on $IP..."
410410
@@ -444,9 +444,9 @@ def decide_action(**context):
444444
445445
VM_NAME=freeipa
446446
447-
if kcli info vm $VM_NAME &>/dev/null; then
447+
if sudo kcli info vm $VM_NAME &>/dev/null; then
448448
echo "Deleting VM: $VM_NAME"
449-
kcli delete vm $VM_NAME -y
449+
sudo kcli delete vm $VM_NAME -y
450450
echo "[OK] VM deleted"
451451
else
452452
echo "[WARN] VM $VM_NAME does not exist"

0 commit comments

Comments
 (0)