Releases: opencost/opencost
v1.110.0
What's Changed
- wipe out dead code, fix build by @ameijer in #2531
- Ajay tripathy fix gpucost by @AjayTripathy in #2523
- Azure cloud costs: Add IsAzureDownloadBillingDataToDisk by @biancaburtoiu in #2535
- workflow for opencost builds by @cliffcolvin in #2494
- step outputs rather than ev var by @ameijer in #2539
- Support LB and PV item-level reconciliation by @nikovacevic in #2536
- Suppress undesirable provider error log [SELFHOST-1203] by @nik-kc in #2543
- Add
statefulset
,daemonset
, andjob
to drop-down options by @mattray in #2542 - More defensive approach to retrieving Node labels for a node by @thomasvn in #2534
- Add persistence for config controller by @Sean-Holcomb in #2520
- update azure sdk versions by @Sean-Holcomb in #2553
- Fix default of 7 days so it doesn't report 'Custom' date range by @mattray in #2555
- Add support for showing "idle" in the UI by @mattray in #2557
- Replaced Kubecost messaging with OpenCost specifics by @mattray in #2556
- remove env check by @Sean-Holcomb in #2558
- enable extra debugging for buildx in the GHA by @mattray in #2561
- add support for EKS pod identities by @saweber in #2562
- Update workflow build by @cliffcolvin in #2563
- trigger build and release from tag by @cliffcolvin in #2574
- impl basic structs for plugins by @ameijer in #2569
- Switch from JSON to protobuf for kube-api requests by @r2k1 in #2570
- Fix pod cache initialization by @r2k1 in #2576
- fix build version detect by @cliffcolvin in #2581
- update tags by @cliffcolvin in #2585
- cost-model was missing the build-args for version and commit by @mattray in #2588
- Add release number by @cliffcolvin in #2589
- Add version and commit for logging by @mattray in #2571
- go mod tidy by @mbolt35 in #2566
- skip custom pricing if empty string by @nickcurie in #2578
- Add comments and logging to pkg/cloud by @thomasvn in #2560
- Atm/plugin types by @ameijer in #2579
- use status/buildinfo endpoint to get status instead of status/config added variable to set static scrape interval by @AndrewChubatiuk in #2567
- Bump imjasonh/setup-crane from 0.1 to 0.3 by @dependabot in #2546
- cherry pick over by @ameijer in #2602
- continued custom cost ingest impl by @ameijer in #2603
- refactor and improve tilt by @saweber in #2428
- Set package repository to ghcr.io by @mattray in #2564
- Standardize RELEASE_VERSION and IMAGE_TAG across build scripts by @mattray in #2593
- Version logging for the develop branch by @mattray in #2609
- Atm/plugin ingestion by @ameijer in #2610
- merge working branch from develop by @ameijer in #2611
- Sth/plugin proto by @Sean-Holcomb in #2612
- Atm/protobuf usage by @ameijer in #2614
- pass by ptr to pass govet by @ameijer in #2616
- Nik/plugins by @nik-kc in #2619
- impl intersection logic, move instantiation to common KCM code to unb… by @ameijer in #2620
- Changed err log to info log for csv node pricing by @williamkubecost in #2618
- sth/querier-tweaks merge by @ameijer in #2624
- merge in from develop by @ameijer in #2625
- omit empty fix by @ameijer in #2626
- Final plugin fixes by @nik-kc in #2627
- feat: add missing azs to Scaleway provider by @jrmanes in #2622
- provide default accumulation for custom costs API by @ameijer in #2630
- Add aggregations and filtering to OC plugins by @nik-kc in #2629
- Add CostSource to CustomCost responses, aggregations, and filtering. by @nik-kc in #2633
- Create a filter implementation for K8s
runtime.Object
s by @michaelmdresser in #2631 - use retention to determine coverage, not query window by @ameijer in #2639
- minor consistency update for node's well known labels by @ksdpmx in #2605
- Wrap unknown tag columns in double qotes by @Sean-Holcomb in #2654
- Add carbon estimation functionality to assets by @kaelanspatel in #2653
- Remove headers from errors by @Sean-Holcomb in #2660
- Sth/azure storage upgrade by @Sean-Holcomb in #2656
- Custom Costs Migration by @nik-kc in #2659
- Update the
/installInfo
endpoint by @thomasvn in #2663 - change URL for Kubecost issues by @chipzoller in #2668
- Fix Custom Cost window and step calculations by @nik-kc in #2671
- Update
/installInfo
endpoint. Adds startTime back in. by @thomasvn in #2670 - Add
domains
to/customCost/status
response by @nik-kc in #2676 - move context to first argument by @Sean-Holcomb in #2666
- properly trim quotes and prefix for label by @Sean-Holcomb in #2684
- BYO prometheus , common prometheus docs broken links fixed by @jash2105 in #2678
- Adding additional check for EKS, using Kubelet by @williamkubecost in #2634
- Expose
GetKubecostContainers()
by @nik-kc in #2686 - cloud cost status returns empty slice instead of nil by @Sean-Holcomb in #2687
- prevent spam log in unconfigured cloudcost by @Sean-Holcomb in #2693
- Create a hash key when agg properties are not set for Cloud Cost by @Sean-Holcomb in #2700
- TypeUtil Enhancements by @mbolt35 in #2707
- Azure Blob Stream Reader by @mbolt35 in #2711
New Contributors
- @williamkubecost made their first contribution in #2618
- @jrmanes made their first contribution in #2622
- @ksdpmx made their first contribution in #2605
- @chipzoller made their first contribution in #2668
- @jash2105 made their first contribution in #2678
Full Changelog: v1.109.0...v1.110
v1.109.0
What's Changed
- Cleaner logging in metrics.go by @wonko in #2350
- update Dockerfile.cross with new default.nginx.conf.template by @cliffcolvin in #2373
- Add labels to cloud cost view table rows by @Sean-Holcomb in #2371
- aggregate by all if aggregate is empty by @nickcurie in #2376
- Extends: Fixes drilldown per item day and descending order on agg by item - PR #2289 by @wolfeaustin in #2375
- Handle SUSE Rancher node special case by @CampfireRemnants in #2299
- Log and continue on a single record processing failures. by @r2k1 in #2385
- Add Artur Khantimirov to the OpenCost Maintainers by @mattray in #2372
- feat: 2323 adding version and commit on OpenCost-ui logs by @brito-rafa in #2388
- update Tiltfile to support nginx template change by @saweber in #2387
- Configure Dependabot to update NPM dependencies under /ui by @DonaldKellett in #2319
- dump the gh context for debugging by @ameijer in #2397
- Atm/debug code cov by @ameijer in #2398
- [DO NOT MERGE] testing sonar code coverage by @ameijer in #2395
- Revert "[DO NOT MERGE] testing sonar code coverage" by @ameijer in #2399
- run baseline scan when on develop by @ameijer in #2400
- additional settings by @ameijer in #2402
- rm bad branch by @ameijer in #2403
- Atm/undo bad params by @ameijer in #2404
- add sonar-project.properties by @ameijer in #2406
- Enable (*FileStorage).ListDirectories to list symlinks which target directories by @michaelmdresser in #2408
- Make telemetry metrics respect disable state by @michaelmdresser in #2409
- Dependabot updates by @mattray in #2414
- Bump actions/checkout from 2 to 4 by @dependabot in #2147
- Bump actions/setup-node from 3 to 4 by @dependabot in #2230
- Bump actions/github-script from 6 to 7 by @dependabot in #2338
- Bump actions/setup-go from 4 to 5 by @dependabot in #2383
- Bump actions/stale from 8 to 9 by @dependabot in #2384
- Set configs in
aws.json
to empty strings by @thomasvn in #2301 - Make FileStorage's Read and Write go through
flock()
by @michaelmdresser in #2429 - Fix AWS spot price with default config by @sachin-rafay in #2386
- pkg/prom: fix dropped errors by @alrs in #2445
- Fix a test that relies on Prom library by @michaelmdresser in #2432
- OpenCost Core Refactor by @mbolt35 in #2440
- gpu slicing by @AjayTripathy in #2447
- Add trace log level (Trace and Tracef) to the log package by @michaelmdresser in #2458
- Download Azure billing CSV to filesystem, instead of holding in memory by @thomasvn in #2456
- Cloud Costs Kubernetesless by @mattray in #2317
- [OpenCost-Core] Parse CloudCostProperty by @mbolt35 in #2461
- Oracle Cloud Infrastructure (OCI) Provider by @anders-swanson in #2367
- [OpenCost-Core] Fix the Dockerfile and Makefile by @mbolt35 in #2467
- feat: add oci annotations to container images by @MindTooth in #2143
- Bump actions/cache from 3 to 4 by @dependabot in #2464
- Bump follow-redirects from 1.15.3 to 1.15.4 in /ui by @dependabot in #2446
- Add OpenSSF Best Practices badge to README by @mattray in #2471
- Fix 'go vet' warning "loop variable r captured by func literal" by @mattray in #2469
- avoid nil panic when seaching for GPU costs in non-existent nodes by @ameijer in #2474
- Simplify GPU query by @r2k1 in #2312
- Cross-Zone and Cross-Region Network Costs Labels by @mbolt35 in #2478
- Stop emitting unused metrics by @r2k1 in #2313
- Make field map access concurrency-safe by @michaelmdresser in #2476
- address resolve endpoint issue w/AWS by @ameijer in #2488
- Remove label sanitation from cloud cost agg property parsing by @Sean-Holcomb in #2490
- LbAllocation Hours by @mbolt35 in #2493
- Update NOTICE for 2024 by @mattray in #2466
- Add 'go vet' to testing by @mattray in #2470
- Dependabot UI roll-up by @mattray in #2487
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #2419
- update AWS SDK to latest by @saweber in #2496
- Fix UI Build Command in CONTRIBUTING.md by @ChihweiLHBird in #2500
- use
policy/v1
forPodDisruptionBudget
by @a7i in #2499 - fix csv casing, precedence, add test by @AjayTripathy in #2509
- fix float issues by @AjayTripathy in #2512
- Third party attributions in OpenCost artifacts by @anders-swanson in #2502
- chore: OpenCost-helm-chart #176 issue consistent prometheus namespaceName and serviceName by @brito-rafa in #2519
- Allow OpenCost-ui to run with a read-only root filesystem by @kaitimmer in #2521
- Add version rendered at bottom of page. by @mattray in #2479
- AllocationFilterParser: Add 'nilable' to controller/controllerKind props by @biancaburtoiu in #2529
- Tweak OCI URL for container image labels by @MindTooth in #2522
- wipe out dead code, fix build by @ameijer in #2532
- Cp 109 gpucost by @cliffcolvin in #2533
- Add version and commit for logging to v1.109 branch by @mattray in #2575
New Contributors
- @wonko made their first contribution in #2350
- @wolfeaustin made their first contribution in #2375
- @DonaldKellett made their first contribution in #2319
- @sachin-rafay made their first contribution in #2386
- @anders-swanson made their first contribution in #2367
- @MindTooth made their first contribution in #2143
- @ChihweiLHBird made their first contribution in #2500
- @kaitimmer made their first contribution in #2521
Full Changelog: v1.108.0...v1.109.0
v1.108.0
What's Changed since v1.107.1
This release introduces the new Cloud Costs functionality.
- #1861 added a separate client for prometheus scrape config endpoint by @AndrewChubatiuk
- #2145 pkg/costmodel: fix dropped errors by @alrs
- #2152 chore: remove refs to deprecated io/ioutil by @testwill
- #2160 pkg/kubecost: fix dropped test errors by @alrs
- #2187 use a default ratio to avoid issues with NaN ratios by @AjayTripathy
- #2208 Use spot custom prices when spot node determined by @legigor
- #2212 Bump golang.org/x/net from 0.8.0 to 0.17.0 by @dependabot
- #2222 Open source CloudCost ingestion by @Sean-Holcomb
- #2231 add a2ultragpu gcp instance type by @saweber
- #2237 add gcp region europe-west9 by @mjcc30
- #2241 Bump google.golang.org/grpc from 1.53.0 to 1.56.3 by @dependabot
- #2245 fix panic when running KCM/OC locally when downloading pricing data by @saweber
- #2246 Fix overhead addition in (*Node).add() by @michaelmdresser
- #2251 Nil out overhead when adding nil to non-nil by @michaelmdresser
- #2255 check for nil struct before sanitizing by @ameijer
- #2260 return err from query by @Sean-Holcomb
- #2262 Open source Cloud Costs UI by @teevans
- #2264 PR to fix the UI Build Scripts by @teevans
- #2265 Updated docker images. by @teevans
- #2269 Add embedded YouTube to README by @mattray
- #2271 Add Deployments to the breakdown drop-down by @mattray
- #2272 Minor typo fixes in the new Cloud Cost UI by @mattray
- #2273 Synced Date Range options by @mattray
- #2279 ClusterLoadBalancers: Update LB cost only if positive run time recorded by @biancaburtoiu
- #2286 add code coverage by @ameijer
- #2287 Cloud Cost UI goes blank with no cloud-integration.json as a secret by @jjarrett21
- #2288 Restore the standard quay.io repositories by @mattray
- #2293 Simplify prometheus queries by @r2k1
- #2295 add fix for GCP instance types that contain 'Nvidia' but not 'Nvidia Tesla' in description by @saweber
- #2296 Amortization For GCP Cloud Cost by @Sean-Holcomb
- #2302 Bump axios from 1.5.1 to 1.6.0 in /ui by @dependabot
- #2305 fix: Quote table name in Athena query to handle cases where table name does not begin with an alphabet by @visokoo
- #2308 Update NOTICE for 2023 by @mattray
- #2315 Revert "add code coverage" by @cliffcolvin
- #2316 Revert "added a separate client for prometheus scrape config endpoint" by @cliffcolvin
- #2320 create development enviornment with tilt.dev by @saweber
- #2324 Fix missing items in Azure CloudCosts by @kaelanspatel
- #2330 Add tests by @Sean-Holcomb
- #2331 trying new approach for secure results uploading by @ameijer
- #2332 Re impl code coverage by @ameijer
- #2333 provide missing params by @ameijer
- #2334 quotes causing mismatch by @ameijer
- #2337 pkg/kubecost: fix clobbered errors by @alrs
- #2342 Add Zendesk to Opencost ADOPTERS.md by @lmello
- #2345 Update provider.go by @AjayTripathy
- #2347 Updated URL and other warning messages to reflect OpenCost not Kubecost by @mattray
- #2349 Fix Read-only file system issue during CSV Export by @santosh-sahoo334
- #2354 fix test, add defensive check to scaleway by @AjayTripathy
- #2355 Fix bug in
pv_hourly_cost
metric still emitting even after PV deletion by @thomasvn - #2357 add profiling endpoints by @ameijer
- #2359 chore: adding version on justfile and tweaking CONTRIBUTING by @brito-rafa
- #2362 sanitize asset labels by @cliffcolvin
- #2363 Support for Azure Workload Identities by @Sean-Holcomb
- #2366 Expose and make the API and UI ports configurable by @mattray
- #2374 update dockerfile.cross with new nginx.conf.template by @cliffcolvin
- #2378 Pick #2376 for v1.108 by @michaelmdresser
- #2379 Pick #2375 for v1.108 by @michaelmdresser
New Contributors
- @mjcc30 made their first contribution in #2237
- @legigor made their first contribution in #2208
- @visokoo made their first contribution in #2305
- @lmello made their first contribution in #2342
- @jjarrett21 made their first contribution in #2287
- @santosh-sahoo334 made their first contribution in #2349
- @testwill made their first contribution in #2152
Full Changelog: v1.107.1...v1.108.0
v1.107.1
This is a security-related release with no additional changes beyond updating dependencies.
Dependency google.golang.org/grpc has been updated in response to CVE-2023-44487
V1.107.0
The new Cloud Costs feature is not in the current stable release yet. Please use the OpenCost image gcr.io/kubecost1/opencost:cloudcost and the OpenCost UI image gcr.io/kubecost1/opencost-ui:cloudcost to access this beta feature.
This is primarily a stability release for OpenCost as we prepare 1.108 with the new Cloud Costs feature.
- Updates AWS Node Types for us-east-1 and us-west-2
- #1801 disabled healthz endpoint logging
- #1931 AWS EBS: add default EBS volume types for provisioners
- #1991 Add custom S3 CSV billing export endpoint
- #2069 stop NaNs from propogating through opencost and kubecost
- #2074 Update Cloud Connections with GetStatus function
- #2075 add ip field to load balancers
- #2077 Add filter 21 to Cloud Cost
- #2083 Fix parsing of GCP pricing and create new node diagnostic pricing API
- #2093 Label entry to lookup node was missing architecture type
- #2103 pkg/cloud/alibaba: fix dropped errors
- #2107 sanitize label names before metric emission to prevent label name collisions
- #2112 improve auth error handling and response for AWS orphaned resources
- #2116 GCP Provider Cluster Filter Fix
- #2118 fix Inf and negative values in pod-to-PVC attribution
- #2122 Remove default values for GCP cloud billing integration
- #2124 pkg/prom: fix dropped logging errors
- #2126 Provider csi vols ii
- #2133 Protect config pricing against NaN and other invalid numerical values
- #2134 filter to correct KSM implementation
- #2139 Provide ability to toggle load balancer PARC behavior
- #2141 feat: athena configuration support for Catalog
- #2151 add a way to compare boundary errors
- #2154 Improve AWS integrations
- #2155 pkg/storage: defer Close() after error handling
- #2161 set max results param for athena pagination
- #2165 csv export: override default max days (default: 90d)
- #2166 Sync Dockerfile and Dockerfile.cross and run as non-root user
- #2170 Fixes AWS catalog load
- #2173 Use new filters for sharing
- #2174 update prom queries to use more accurate math
- #2177 update results to valid value
- #2177 fix: use spot label nodes from custom provider config
- #2180 Add "mimir" to info log message
- #2182 Fix sharing coefficients when unmounted PVs are folded into namespaces
- #2183 Functions in Opencost to achieve distributing shared VMSS disk and network cost across VMs in VMSS
- #2189 scaleway :: fix gpu value
- #2195 remove extra parenthesis causing query to fail
- #2209 Emit empty string instead of for storageclass label on kube_persistentvolumeclaim_info to match KSM changes
- #2211 Adds node overhead calculations to OpenCost
- #2220 Add utility to strip whitespace
- #2224 orphaned resources repair
- #2225 Update ParseWindow Functionality for "7d", "1w", etc.
- #2231 add a2ultragpu gcp instance type
- #2246 Fix overhead addition in (*Node).add()
- #2250 fix panic when running KCM/OC locally when downloading pricing data
- #2251 Nil out overhead when adding nil to non-nil
- #2256 check for nil struct before sanitizing
- #2258 Fix cloud status endpoint for aggregator
- #2261 fix bug where err is not returned from query
- #2263 replace missing func
V1.106.4
Bug Fixes
- Fix an issue showing empty message while loading allocations
Security Updates
V1.106.3
V1.106.2
Security Patch
This release patches two CVEs impacting the image which runs the OpenCost UI. The code of the OpenCost application itself is unchanged from V1.106.1.
CVEs Resolved
V1.106.1
The v1.106 release was intended as a ‘production’ release focused on targeting bug fixes and stability.
v1.106.0 was not promoted due to a regression in the UI container. That issue has been corrected.
- 2175 Sync Dockerfile and Dockerfile.cross and run as non-root user for 1.106
- 2138 Protect config pricing against NaN and other invalid numerical values
- 2137 Improve auth error handling and response for AWS orphaned resources
- 2136 Filter to correct KSM implementation
- 2119 Fix Inf and negative values in pod-to-PVC attribution
- 2107 Sanitizes label names before metric emission to prevent label name collisions
- 2093 Adds the creation of lookup key with architecture
- 2083 Fixes parsing of GCP pricing and create new node diagnostic pricing API
- 2076 Fixes subquery fallback to lookup container_cpu_usage_seconds_total metric on container instead of container_name
- 2075 Adds IP field to load balancers
- 2074 Updates Cloud Connections with GetStatus function
- 2070 Adds the Close Stale Issues GitHub Action
- 2069 Stops NaNs from propagating through OpenCost and Kubecost
- 2059 Adds PVs for ProportionalAssetResourceCosts
- 2058 Removes ETL Audit types
- 2056 Fixes PV usage sanity limit
- 2054 Downgrades CSV Export error message
- 2053 Corrects hyperlinks in OpenCost docs
- 2051 Adds Sanity limits for persistent volumes
- 2050 Changes default allocation/compute aggregation to match allocation end
- 2048 Uses the existing variable in error message
- 2047 Fixes the unmounted allocation caused by the offset duration leading to an unmounted PVC coefficient entry
- 2044 Corrects hyperlinks in install docs
- 2039 Reformats OpenCost docs minorly
- 1928 Adds Mimir support with org ID header
V1.105.2
Version 1.105.2 fixes an accuracy issue where OpenCost continued reporting data on nodes even after they were terminated, which resulted in inflated cost metrics. All users running OpenCost 1.105.0 and 1.105.1 are advised to upgrade as soon as possible. This issue impacts both the primary instance and agents. The issue does not affect 1.104 or other releases.