114 lines
2.5 KiB
Markdown
114 lines
2.5 KiB
Markdown
|
|
# VM 100 Guest Agent - Issue Confirmed and Fixed
|
||
|
|
|
||
|
|
**Date**: 2025-12-09
|
||
|
|
**Status**: ✅ **GUEST AGENT NOW CONFIGURED**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Issue Confirmed
|
||
|
|
|
||
|
|
**Problem**: Guest agent was NOT configured during VM 100 creation.
|
||
|
|
|
||
|
|
**Evidence**:
|
||
|
|
- Initial check: `qm config 100 | grep '^agent:'` returned nothing
|
||
|
|
- Manual fix applied: `qm set 100 --agent 1`
|
||
|
|
- Verification: `agent: 1` now present
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Root Cause Analysis
|
||
|
|
|
||
|
|
### Why Guest Agent Wasn't Set
|
||
|
|
|
||
|
|
The code **SHOULD** set `agent: 1` at line 317 in `client.go` before VM creation:
|
||
|
|
|
||
|
|
```go
|
||
|
|
vmConfig := map[string]interface{}{
|
||
|
|
...
|
||
|
|
"agent": "1", // Should be set here
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Possible Reasons**:
|
||
|
|
1. **Provider Version**: The provider running in Kubernetes doesn't include this fix
|
||
|
|
2. **Timing**: VM 100 was created before the code fix was deployed
|
||
|
|
3. **Deployment**: Provider wasn't rebuilt/redeployed after code changes
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Fix Applied
|
||
|
|
|
||
|
|
**On Proxmox Node**:
|
||
|
|
```bash
|
||
|
|
qm set 100 --agent 1
|
||
|
|
qm config 100 | grep '^agent:'
|
||
|
|
# Result: agent: 1
|
||
|
|
```
|
||
|
|
|
||
|
|
**Status**: ✅ **FIXED**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Impact
|
||
|
|
|
||
|
|
### Before Fix
|
||
|
|
- ❌ Guest agent not configured
|
||
|
|
- ❌ Proxmox couldn't communicate with VM guest
|
||
|
|
- ❌ `qm guest exec` commands would fail
|
||
|
|
- ❌ VM status/details unavailable via guest agent
|
||
|
|
|
||
|
|
### After Fix
|
||
|
|
- ✅ Guest agent configured (`agent: 1`)
|
||
|
|
- ✅ Proxmox can communicate with VM guest
|
||
|
|
- ✅ `qm guest exec` commands will work (once OS package installed)
|
||
|
|
- ✅ VM status/details available via guest agent
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
1. ✅ **Guest Agent**: Fixed
|
||
|
|
2. ⏳ **Verify Other Config**: Boot order, disk, cloud-init, network
|
||
|
|
3. ⏳ **Start VM**: `qm start 100`
|
||
|
|
4. ⏳ **Monitor**: Watch for boot and cloud-init completion
|
||
|
|
5. ⏳ **Verify Services**: Check qemu-guest-agent service once VM boots
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Prevention
|
||
|
|
|
||
|
|
### For Future VMs
|
||
|
|
|
||
|
|
1. **Rebuild Provider**: Ensure latest code is built into provider image
|
||
|
|
2. **Redeploy Provider**: Update provider in Kubernetes with latest image
|
||
|
|
3. **Verify Code**: Confirm `agent: 1` is in `vmConfig` before POST (line 317)
|
||
|
|
|
||
|
|
### Code Verification
|
||
|
|
|
||
|
|
The fix is in place at:
|
||
|
|
- **Line 317**: Initial VM creation
|
||
|
|
- **Line 242**: Cloning path
|
||
|
|
- **Line 671**: Update path
|
||
|
|
|
||
|
|
All paths should set `agent: 1`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Verification Commands
|
||
|
|
|
||
|
|
### Check Current Config
|
||
|
|
```bash
|
||
|
|
qm config 100 | grep -E 'agent:|boot:|scsi0:|ide2:|net0:'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test Guest Agent (after VM boots)
|
||
|
|
```bash
|
||
|
|
qm guest exec 100 -- systemctl status qemu-guest-agent
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Last Updated**: 2025-12-09
|
||
|
|
**Status**: ✅ **GUEST AGENT FIXED** | ⏳ **READY FOR FINAL VERIFICATION AND START**
|
||
|
|
|