Files
Sankofa/docs/proxmox/WARNINGS_ANALYSIS.md
defiQUG 33d50fb91e
Some checks failed
API CI / API Lint (push) Successful in 47s
API CI / API Type Check (push) Failing after 47s
API CI / API Test (push) Successful in 1m0s
API CI / API Build (push) Failing after 50s
API CI / Build Docker Image (push) Has been skipped
Build Crossplane Provider / build (push) Failing after 5m51s
CD Pipeline / Deploy to Staging (push) Failing after 29s
CI Pipeline / Lint and Type Check (push) Failing after 36s
CI Pipeline / Build (push) Has been skipped
CI Pipeline / Test Backend (push) Failing after 1m33s
CI Pipeline / Test Frontend (push) Failing after 30s
CI Pipeline / Security Scan (push) Failing after 1m16s
Crossplane Provider CI / Go Test (push) Failing after 3m23s
Crossplane Provider CI / Go Lint (push) Failing after 7m27s
Crossplane Provider CI / Go Build (push) Failing after 3m27s
Deploy to Staging / Deploy to Staging (push) Failing after 30s
Portal CI / Portal Lint (push) Failing after 21s
Portal CI / Portal Type Check (push) Failing after 21s
Portal CI / Portal Test (push) Failing after 21s
Portal CI / Portal Build (push) Failing after 22s
Test Suite / frontend-tests (push) Failing after 30s
Test Suite / api-tests (push) Failing after 49s
Test Suite / blockchain-tests (push) Failing after 30s
Type Check / type-check (map[directory:. name:root]) (push) Failing after 23s
Type Check / type-check (map[directory:api name:api]) (push) Failing after 21s
Type Check / type-check (map[directory:portal name:portal]) (push) Failing after 19s
Validate Configuration Files / validate (push) Failing after 1m52s
CD Pipeline / Deploy to Production (push) Has been skipped
chore: consolidate local WIP (repo cleanup 20260707)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:41:34 -07:00

6.6 KiB

Provider Warnings Analysis and Fix Instructions

Date: 2025-12-13
Status: ⚠️ WARNINGS IDENTIFIED - FIX REQUIRES GO ENVIRONMENT


Summary

The provider logs show repeated errors about missing CRDs. These are non-critical and don't affect basic VM operations, but they create log noise and should be fixed.


Issue Details

Error Messages

Repeating every 10 seconds:

ERROR controller-runtime.source.EventHandler if kind is a CRD, it should be installed before calling Start
{"kind": "ProxmoxVMScaleSet.proxmox.sankofa.nexus", "error": "no matches for kind \"ProxmoxVMScaleSet\" in version \"proxmox.sankofa.nexus/v1alpha1\""}

ERROR controller-runtime.source.EventHandler if kind is a CRD, it should be installed before calling Start
{"kind": "ResourceDiscovery.proxmox.sankofa.nexus", "error": "no matches for kind \"ResourceDiscovery\" in version \"proxmox.sankofa.nexus/v1alpha1\""}

Root Cause

  1. Provider Code: The provider (cmd/provider/main.go) unconditionally registers controllers for:

    • ProxmoxVMScaleSet - For VM scaling operations
    • ResourceDiscovery - For resource discovery operations
  2. Missing CRDs: The CRD YAML files for these resources don't exist:

    • proxmox.sankofa.nexus_proxmoxvmscalesets.yaml - Missing
    • proxmox.sankofa.nexus_resourcediscoveries.yaml - Missing
  3. Type Definitions Exist: The Go type definitions exist in:

    • apis/v1alpha1/vmscaleset_types.go
    • apis/v1alpha1/resourcediscovery_types.go
  4. CRDs Not Generated: The CRDs were never generated from the type definitions.

Impact

Aspect Impact Severity
VM Operations Working perfectly None
Log Noise ⚠️ Errors every 10 seconds Low
Resource Usage ⚠️ Minor (retry attempts) Low
Functionality All basic features work None

Conclusion: Non-critical but should be fixed for production.


Fix Instructions

Prerequisites:

  • Go 1.21+ installed
  • Access to build environment

Steps:

  1. Generate CRDs:

    cd crossplane-provider-proxmox
    make manifests
    

    This will generate:

    • config/crd/bases/proxmox.sankofa.nexus_proxmoxvmscalesets.yaml
    • config/crd/bases/proxmox.sankofa.nexus_resourcediscoveries.yaml
  2. Install CRDs:

    kubectl apply -f config/crd/bases/
    
  3. Verify:

    kubectl get crd | grep proxmox
    # Should show all 4 CRDs:
    # - providerconfigs.proxmox.sankofa.nexus
    # - proxmoxvms.proxmox.sankofa.nexus
    # - proxmoxvmscalesets.proxmox.sankofa.nexus
    # - resourcediscoveries.proxmox.sankofa.nexus
    
  4. Check Logs:

    kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox --tail=50
    # Should show no CRD-related errors
    

Result: All errors resolved, all features available.


Option 2: Make Controller Registration Conditional (Code Change)

If you don't need scaling/discovery features, modify the provider code to only register controllers if CRDs exist.

File: crossplane-provider-proxmox/cmd/provider/main.go

Change:

// Instead of unconditional registration:
// Register ProxmoxVMScaleSet controller
if err = (&vmscaleset.ProxmoxVMScaleSetReconciler{
    Client: mgr.GetClient(),
    Scheme: mgr.GetScheme(),
}).SetupWithManager(mgr); err != nil {
    setupLog.Error(err, "unable to create controller", "controller", "ProxmoxVMScaleSet")
    os.Exit(1)
}

// Use conditional registration:
// Only register if CRD exists
if crdExists("proxmoxvmscalesets.proxmox.sankofa.nexus") {
    if err = (&vmscaleset.ProxmoxVMScaleSetReconciler{
        Client: mgr.GetClient(),
        Scheme: mgr.GetScheme(),
    }).SetupWithManager(mgr); err != nil {
        setupLog.Error(err, "unable to create controller", "controller", "ProxmoxVMScaleSet")
        os.Exit(1)
    }
} else {
    setupLog.Info("ProxmoxVMScaleSet CRD not found, skipping controller registration")
}

Note: This requires:

  • Implementing crdExists() helper function
  • Rebuilding the provider image
  • Redeploying the provider

Option 3: Accept Log Noise (Temporary)

If you don't need these features and can't fix immediately:

  • Filter logs to ignore these specific errors
  • Accept the log noise (doesn't affect functionality)
  • Fix later when Go environment is available

Current Status

Installed CRDs

kubectl get crd | grep proxmox

Current:

  • providerconfigs.proxmox.sankofa.nexus
  • proxmoxvms.proxmox.sankofa.nexus
  • proxmoxvmscalesets.proxmox.sankofa.nexus - Missing
  • resourcediscoveries.proxmox.sankofa.nexus - Missing

Provider Functionality

  • Basic VM Operations: Working perfectly
  • ProviderConfig: Working
  • ⚠️ VM Scaling: Not available (CRD missing)
  • ⚠️ Resource Discovery: Not available (CRD missing)

Recommendation

For Development/Testing

Priority: Low

  • Can be ignored for now
  • Basic VM operations work fine
  • Fix when convenient

For Production

Priority: Medium

  • Should be fixed to reduce log noise
  • Enables additional features (scaling, discovery)
  • Improves operational clarity

Recommended Action: Generate and install missing CRDs (Option 1)


Verification After Fix

Expected Results

  1. All CRDs Installed:

    kubectl get crd | grep proxmox
    # 4 CRDs should be listed
    
  2. Clean Logs:

    kubectl logs -n crossplane-system -l app=crossplane-provider-proxmox --tail=100 | grep -i error
    # Should show no CRD-related errors
    
  3. All Features Available:

    • Basic VM management
    • VM scaling
    • Resource discovery

Additional Notes

Why This Happened

  • CRD generation is part of the build process
  • Type definitions exist but CRDs weren't generated
  • Provider code assumes all CRDs are installed
  • Controller-runtime requires CRDs before watching

Prevention

  • Include CRD generation in CI/CD pipeline
  • Verify all CRDs are installed during deployment
  • Make controller registration conditional (best practice)

Conclusion

Status: ⚠️ Warnings present but non-critical

  • Basic functionality: Working
  • Log noise: ⚠️ Present (can be filtered)
  • Additional features: ⚠️ Not available (until CRDs installed)
  • Fix required: Yes (for production)

Action: Generate and install missing CRDs when Go environment is available.


Last Updated: 2025-12-13
Status: ⚠️ FIX REQUIRED (NON-CRITICAL)