On-Premises Integration
Learn how to configure Kubeadapt for on-premises Kubernetes clusters with custom resource pricing for accurate cost tracking.
Overview
Kubeadapt supports on-premises deployments by allowing you to configure custom pricing for compute, memory, storage, and network resources. This is ideal for:
- Self-managed Kubernetes clusters (kubeadm, kops, Rancher, etc.)
- Bare metal infrastructure
- Private datacenters
- Hybrid cloud environments
Prerequisites
- On-premises Kubernetes cluster (1.24 or higher)
- kubectl access to your cluster
- Internal resource pricing information (CPU, RAM, storage costs)
Default Pricing
Kubeadapt uses default pricing based on GCP us-central1 rates if no custom pricing is configured:
json1{ 2 "provider": "custom", 3 "description": "Default prices based on GCP us-central1", 4 "CPU": "0.031611", // $ per core-hour 5 "spotCPU": "0.006655", // $ per core-hour (spot/preemptible) 6 "RAM": "0.004237", // $ per GB-hour 7 "spotRAM": "0.000892", // $ per GB-hour (spot/preemptible) 8 "GPU": "0.95", // $ per GPU-hour 9 "storage": "0.00005479452", // $ per GB-hour 10 "zoneNetworkEgress": "0.01", // $ per GB 11 "regionNetworkEgress": "0.01", 12 "internetNetworkEgress": "0.12" 13}
Custom Pricing Configuration
To reflect your actual datacenter costs, configure custom pricing in your Helm values file.
Step 1: Calculate Your Resource Costs
Determine your internal costs for:
- CPU: Cost per core-hour (total server cost / cores / hours per month)
- RAM: Cost per GB-hour (total memory cost / GB / hours per month)
- Storage: Cost per GB-hour (storage infrastructure cost)
- Network: Egress costs (if applicable)
Example calculation:
text1Server: $3,000 (24 cores, 128GB RAM) 2Lifespan: 36 months 3Operating hours: 720 hours/month 4 5CPU cost = $3,000 / 36 / 720 / 24 = $0.00579 per core-hour 6RAM cost = $3,000 / 36 / 720 / 128 = $0.00108 per GB-hour
Step 2: Update Helm Values
Create or update your values.yaml file:
yaml1# values.yaml 2opencost: 3 opencost: 4 customPricing: 5 enabled: true 6 costModel: 7 description: "Internal datacenter pricing" 8 CPU: "0.00579" # Your calculated CPU cost per core-hour 9 RAM: "0.00108" # Your calculated RAM cost per GB-hour 10 storage: "0.00010" # Your storage cost per GB-hour 11 GPU: "1.50" # GPU cost per hour (if applicable) 12 zoneNetworkEgress: "0.01" 13 regionNetworkEgress: "0.01" 14 internetNetworkEgress: "0.12"
Step 3: Apply Configuration
Install or upgrade Kubeadapt with your custom pricing:
bash1helm upgrade kubeadapt kubeadapt/kubeadapt \ 2 --namespace kubeadapt \ 3 --install \ 4 -f values.yaml
Multi-Tier Pricing
For organizations with different server types or pricing tiers, you can set node-specific pricing using Kubernetes labels.
Label Nodes by Pricing Tier
bash1# High-performance servers 2kubectl label nodes node1 node2 node3 pricing-tier=premium 3 4# Standard servers 5kubectl label nodes node4 node5 node6 pricing-tier=standard
Configure Tier-Specific Pricing
yaml1# values.yaml 2opencost: 3 opencost: 4 customPricing: 5 enabled: true 6 costModel: 7 # Default pricing (standard tier) 8 CPU: "0.00579" 9 RAM: "0.00108" 10 11 # Premium tier pricing (via labels)
Note: Full multi-tier pricing support requires additional configuration. Contact support for advanced pricing models.
Troubleshooting
Issue: Costs seem too high/low
- Verify your cost calculations include all infrastructure expenses
- Check that cost units are correct (per hour)
- Ensure depreciation period matches your accounting standards
Issue: Custom pricing not applied
- Verify Helm values are correct: kubectl get configmap -n kubeadapt
- Check kubeadapt-opencost logs: kubectl logs -n kubeadapt deployment/kubeadapt-opencost-exporter
- Restart kubeadapt-opencost pods: kubectl rollout restart deployment -n kubeadapt
Issue: Different node types need different pricing
- Use Kubernetes node labels to categorize nodes
- Consider multiple kubeadapt deployments for complex pricing models
- Contact support for enterprise multi-tier pricing solutions
Best Practices
- Regular Review: Update pricing quarterly to reflect infrastructure changes
- Include All Costs: Factor in power, cooling, networking, and maintenance
- Document Assumptions: Keep calculation methodology documented for audits
- Start Conservative: Begin with estimates, refine over time with actual data
- Monitor Trends: Use Kubeadapt to identify cost optimization opportunities
Next Steps
- Cost Attribution - Understand how costs are calculated
- Available Savings - Identify optimization opportunities
- Right-sizing - Optimize resource requests