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:

json
1{ 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:

  1. CPU: Cost per core-hour (total server cost / cores / hours per month)
  2. RAM: Cost per GB-hour (total memory cost / GB / hours per month)
  3. Storage: Cost per GB-hour (storage infrastructure cost)
  4. Network: Egress costs (if applicable)

Example calculation:

text
1Server: $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:

yaml
1# 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:

bash
1helm 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

bash
1# 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

yaml
1# 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

  1. Regular Review: Update pricing quarterly to reflect infrastructure changes
  2. Include All Costs: Factor in power, cooling, networking, and maintenance
  3. Document Assumptions: Keep calculation methodology documented for audits
  4. Start Conservative: Begin with estimates, refine over time with actual data
  5. Monitor Trends: Use Kubeadapt to identify cost optimization opportunities

Next Steps