kubecost / cost-analyzer-helm-chart

Kubecost helm chart
http://kubecost.com/install
Apache License 2.0
486 stars 417 forks source link

"Shared External" Cost Allocation #1580

Closed kc-adawson closed 8 months ago

kc-adawson commented 2 years ago

What problem are you trying to solve? Customers have Out of Cluster Costs that they want to share across multiple kubecost reporting groups (Example, share CloudFront and RDS costs across "Customer" label or across namespace) In this case, multiple tenants utilize 1 CloudFront distribution and 1 RDS, so they need some way to split it across customers (by weight or evenly)

Describe the solution you'd like Allow for external labels to be added into the "Shared" settings, which would create an "External-Shared" data column. Or it could be a sub-item of the existing "Shared" column. Clearly allow people to see both K8s Shared + External Shared.

Describe alternatives you've considered We thought about assigning the CloudFront/RDS to their own empty namespaces, and then just sharing those namespaces. In theory it may do the trick, but it's not obvious to the customer that they could do that without really knowing the platform.

How would users interact with this feature? They would just be able to add External Tags (or Groups of External Tags) to the Shared cost settings, and see it in the report as External costs that are shared.

┆Issue is synchronized with this Jira Task by Unito

jessegoodier commented 2 years ago

+1 from a few customers that have mentioned this to me.

Idea: maybe just start with percentage first? The customer could script out the tags for when they require "evenly" until we get more requirements?

dwbrown2 commented 2 years ago

Seems like a great feature addition to advanced reporting to me!

cc @teevans @wolfeaustin

teevans commented 2 years ago

Yeah I like this a lot. Let's definitely get it on the road map!

cr-benchmarkcorp commented 2 years ago

Large Enterprises that use a shared-services IT chargeback model will have this business requirement. Many organizations use this and require the ability to share tenant-wide (external) cloud services across each tenant in a Kubernetes cluster. If this feature is not developed, large organizations with a shared financial responsibility will be less likely to adopt KubeCost, or more likely to relegate it to a minor component in their overall costing process.

An ideal solution would be to aggregate it at the Cluster level, and then share it using a shared label. Or better yet, provide multiple external labels that aggregate these types of costs and use multiple shared labels to divide costs across Namespaces, etc.

mmurph3 commented 1 year ago

do we have a status update on this?

dwbrown2 commented 1 year ago

Beginning design discussions early next week as part of advanced reports improvements! There's a chance this effort spans multiple releases, but we will update during 1.99

nikovacevic commented 1 year ago

@Adam-Stack-PM looks to me like this is not related to Alibaba. Likely meant to be linked to https://github.com/kubecost/kubecost-cost-model/issues/1053

nikovacevic commented 1 year ago

@dwbrown2 @teevans let's meet soon to discuss how we'll try to approach this from a product perspective in an upcoming release. It goes without saying that this is not going to make 1.99.

srpomeroy commented 1 year ago

Any updates on this? Pushed to v1.101?

teevans commented 1 year ago

@srpomeroy - This won't go into 100 - Maybe 101 - Tagging @dwbrown2 for vis

mmurph3 commented 1 year ago

@teevans doesn't look this is making it into v1.101 - is that correct?

kwombach12 commented 1 year ago

@mmurph3 unfortunately this will not make it into 1.101. But I have this as a high priority for 1.102

nikovacevic commented 1 year ago

FYI this is not prioritized for 1.102. We will have to revisit for 1.103+.

Adam-Stack-PM commented 1 year ago

@kwombach12 and @dwbrown2 Possible item to consider for v1.103.

KevinDW-Fluxys commented 1 year ago

+1 We also have the business case where some of the external costs should be spread over our customers ( = namespaces). Aditionally we would like the granularity of choosing which customers receive the external shared costs, since not all customers use the same shared infrastructure.

kwombach12 commented 1 year ago

We will have some big updates for sharing non-K8s costs in 1.104 coming on June 6th! Please check it out and let us know what else we can do for your use case!

KevinDW-Fluxys commented 1 year ago

@kwombach12 I have taken a look at the new Cost Center Reports feature. For me, its a step in the right direction, but not yet fully what I would need.

I'm still looking for a way to divide cloud costs based on kubernetes usage, in the same way how shared kubernetes costs are shared, with the additional requirement of being able to include/exclude certain namespaces from getting the shared cloud costs. I would think this is a functionality many customers would find interesting, as it allows you to create 1 total cost per project, which includes cloud costs, both direct and shared.

I have tried creating a cost center report with a shared cost center where i select cloud resources based on a "shared"-label, and then add a cost center for every namespace. In this way I still have to manually spread out the shared cost over the needed cost centers in excel. An additional downside is that I have to manage the adding/removing of cost centers manually, which is not feasible in a real situation.

If I have to think for a solution based on the direction of the current cost center report, I would say:

Of course, these are just suggestions, any other implementation that would fit my requirements would also be great :)

Some other notes about the report:

kwombach12 commented 1 year ago

@KevinDW-Fluxys Thank you very much for this feedback. As you can probably tell, our cost center reports are still in beta and there will be a lot of enhancements and polish coming in future releases. It's good to hear we are headed in the right direction and we very much appreciate your feedback to help guide this feature and make it more usable.

github-actions[bot] commented 8 months ago

This issue has been marked as stale because it has been open for 360 days with no activity. Please remove the stale label or comment or this issue will be closed in 5 days.

github-actions[bot] commented 8 months ago

This issue was closed because it has been inactive for 365 days with no activity.