Skip to content

Commit

Permalink
FOPTS-5007 Exit with error code in case of any failure in bill uploads (
Browse files Browse the repository at this point in the history
#52)

* Update main.go

if there is an error, exit

* Running make generate

Running make generate

* Update version

* Replace version from main

* Fixing review comments

* update

---------

Co-authored-by: Davinder Singh <[email protected]>
  • Loading branch information
Kaaku2302 and Davinder Singh authored Sep 25, 2024
1 parent 7c1d3cb commit 7ba0dd5
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 29 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## v1.19.0

- Exit with error code 1 in case of any failure during bill upload.

## v1.18.0

- Changed the default schedule of the cronJob scheduler to run an export task to - Once in every 24 hours.
Expand Down
4 changes: 2 additions & 2 deletions helm-chart/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ description: Kubecost exporter helm chart for Kubernetes
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.18.0
version: 1.19.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.18"
appVersion: "1.19"
4 changes: 2 additions & 2 deletions helm-chart/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# cbi-oi-kubecost-exporter

![Version: 1.18.0](https://img.shields.io/badge/Version-1.18.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.18](https://img.shields.io/badge/AppVersion-1.18-informational?style=flat-square)
![Version: 1.19.0](https://img.shields.io/badge/Version-1.19.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.19](https://img.shields.io/badge/AppVersion-1.19-informational?style=flat-square)

### Kubecost exporter helm chart for Kubernetes

Expand Down Expand Up @@ -100,7 +100,7 @@ You should see 200/201s in the logs, which indicates that the exporter is workin
| flexera.vendorName | string | `"Kubecost"` | Vendor name for the Bill Connect. It is used when CREATE_BILL_CONNECT_IF_NOT_EXIST is set to true. |
| image.pullPolicy | string | `"Always"` | |
| image.repository | string | `"public.ecr.aws/flexera/cbi-oi-kubecost-exporter"` | |
| image.tag | string | `"1.18"` | |
| image.tag | string | `"1.19"` | |
| imagePullSecrets | list | `[]` | |
| includePreviousMonth | bool | `false` | Indicates whether to collect and export previous month. |
| kubecost.aggregation | string | `"pod"` | The level of granularity to use when aggregating the cost data. Valid values are namespace, controller, node, or pod. |
Expand Down
Binary file added helm-chart/cbi-oi-kubecost-exporter-1.19.0.tgz
Binary file not shown.
2 changes: 1 addition & 1 deletion helm-chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
image:
repository: public.ecr.aws/flexera/cbi-oi-kubecost-exporter
pullPolicy: Always
tag: "1.18"
tag: "1.19"

imagePullSecrets: []

Expand Down
58 changes: 34 additions & 24 deletions index.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
apiVersion: v1
entries:
cbi-oi-kubecost-exporter:
- apiVersion: v2
appVersion: "1.19"
created: "2024-09-25T17:24:46.202075-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: d79ed4196f547361df36fa2130d0ab9a0a39e7a9913176745d903bc781766b46
name: cbi-oi-kubecost-exporter
type: application
urls:
- helm-chart/cbi-oi-kubecost-exporter-1.19.0.tgz
version: 1.19.0
- apiVersion: v2
appVersion: "1.18"
created: "2024-08-01T10:20:04.508102-04:00"
created: "2024-09-25T17:24:46.201805-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: a78276488d28e78b40d2c38ab00217a2eeef34920ecfd13d794030843da4985d
name: cbi-oi-kubecost-exporter
Expand All @@ -13,17 +23,17 @@ entries:
version: 1.18.0
- apiVersion: v2
appVersion: "1.17"
created: "2024-08-01T10:20:04.507657-04:00"
created: "2024-09-25T17:24:46.201355-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: fb67f26a3cc1ac5df777c2f1c2b85f75952c516a0be2c472383aaa17958ca13b
digest: d672d4fdee8ca56f97faacaef48bcb246276433512fd3e53880a5496c37d0397
name: cbi-oi-kubecost-exporter
type: application
urls:
- helm-chart/cbi-oi-kubecost-exporter-1.17.0.tgz
version: 1.17.0
- apiVersion: v2
appVersion: "1.16"
created: "2024-08-01T10:20:04.507152-04:00"
created: "2024-09-25T17:24:46.200764-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 676832f616592285b1db455ed66620c0453e7f506fc7fc46bf8214abe15efd3b
name: cbi-oi-kubecost-exporter
Expand All @@ -33,7 +43,7 @@ entries:
version: 1.16.0
- apiVersion: v2
appVersion: "1.15"
created: "2024-08-01T10:20:04.50527-04:00"
created: "2024-09-25T17:24:46.200329-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 1a717c15b88f6e6fb9d4fe083ca6517eb78258b160c064c13e7804e7f659e530
name: cbi-oi-kubecost-exporter
Expand All @@ -43,7 +53,7 @@ entries:
version: 1.15.0
- apiVersion: v2
appVersion: "1.14"
created: "2024-08-01T10:20:04.504606-04:00"
created: "2024-09-25T17:24:46.199818-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 781f81b9f708f8b86cb215bd5bd5ddf7a5782195b4f0e4b85a0265b0cb35c862
name: cbi-oi-kubecost-exporter
Expand All @@ -53,7 +63,7 @@ entries:
version: 1.14.0
- apiVersion: v2
appVersion: "1.13"
created: "2024-08-01T10:20:04.504145-04:00"
created: "2024-09-25T17:24:46.199141-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: bd1994ff4b3b30c623efb05b784f3851f7cb4583479b7c670dd19316cd8a4c02
name: cbi-oi-kubecost-exporter
Expand All @@ -63,7 +73,7 @@ entries:
version: 1.13.0
- apiVersion: v2
appVersion: "1.12"
created: "2024-08-01T10:20:04.503633-04:00"
created: "2024-09-25T17:24:46.19872-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: d1bfa13ac76037b1cc9c2223826056f1da801e59d4d54348504469f4760c458e
name: cbi-oi-kubecost-exporter
Expand All @@ -73,7 +83,7 @@ entries:
version: 1.12.0
- apiVersion: v2
appVersion: "1.11"
created: "2024-08-01T10:20:04.503164-04:00"
created: "2024-09-25T17:24:46.198138-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: f12e36c016cb0b3bca7d75efd69414004c4a0f238e550f74fd13daf015305370
name: cbi-oi-kubecost-exporter
Expand All @@ -83,7 +93,7 @@ entries:
version: 1.11.1
- apiVersion: v2
appVersion: "1.11"
created: "2024-08-01T10:20:04.50114-04:00"
created: "2024-09-25T17:24:46.197686-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: a079003a1bcc3207e1c4f93653caca2234212e2bebafae7acde25a9a2d185bc5
name: cbi-oi-kubecost-exporter
Expand All @@ -93,7 +103,7 @@ entries:
version: 1.11.0
- apiVersion: v2
appVersion: "1.10"
created: "2024-08-01T10:20:04.498149-04:00"
created: "2024-09-25T17:24:46.19722-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: e7f8ac15bb87b78cc14aa3a63a2e37af9db427ad1a059621958430b8121156cd
name: cbi-oi-kubecost-exporter
Expand All @@ -103,7 +113,7 @@ entries:
version: 1.10.0
- apiVersion: v2
appVersion: 1.9.1
created: "2024-08-01T10:20:04.51331-04:00"
created: "2024-09-25T17:24:46.207696-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 773cc828783dd12211cccf149cda5b3c95e5d5bf7bf507d73559ef5f0f66f13a
name: cbi-oi-kubecost-exporter
Expand All @@ -113,7 +123,7 @@ entries:
version: 1.9.1
- apiVersion: v2
appVersion: "1.9"
created: "2024-08-01T10:20:04.512922-04:00"
created: "2024-09-25T17:24:46.207413-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 312f1c8f469adbed664530059526b69c023c017f71cc6c7b8bd9aed523ef22d6
name: cbi-oi-kubecost-exporter
Expand All @@ -123,7 +133,7 @@ entries:
version: 1.9.0
- apiVersion: v2
appVersion: "1.8"
created: "2024-08-01T10:20:04.512542-04:00"
created: "2024-09-25T17:24:46.207051-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 3fc398d0ae6d2c44c9196d262042394763fc7df49f05bd97764637a9becaad11
name: cbi-oi-kubecost-exporter
Expand All @@ -133,7 +143,7 @@ entries:
version: 1.8.0
- apiVersion: v2
appVersion: "1.7"
created: "2024-08-01T10:20:04.512179-04:00"
created: "2024-09-25T17:24:46.206786-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 90fbd649c651fa2ad66d0705aced6cbecd908206c59c135ee585ce12188cd287
name: cbi-oi-kubecost-exporter
Expand All @@ -143,7 +153,7 @@ entries:
version: 1.7.0
- apiVersion: v2
appVersion: "1.6"
created: "2024-08-01T10:20:04.511812-04:00"
created: "2024-09-25T17:24:46.20651-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: f998790d9229fce36398ef487edf6685a9a29e359dd2c78191c4d16344d47acd
name: cbi-oi-kubecost-exporter
Expand All @@ -153,7 +163,7 @@ entries:
version: 1.6.0
- apiVersion: v2
appVersion: "1.5"
created: "2024-08-01T10:20:04.511441-04:00"
created: "2024-09-25T17:24:46.206237-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: a0503a1af7b86a8f0769009de5a71a3613e8503a5f59cf86874d483f0f5f2abb
name: cbi-oi-kubecost-exporter
Expand All @@ -163,7 +173,7 @@ entries:
version: 1.5.0
- apiVersion: v2
appVersion: "1.4"
created: "2024-08-01T10:20:04.510992-04:00"
created: "2024-09-25T17:24:46.205733-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 5b296e921178d84717345be19b92a4eea0c9ca1c65410128dec596692220c8e2
name: cbi-oi-kubecost-exporter
Expand All @@ -173,7 +183,7 @@ entries:
version: 1.4.2
- apiVersion: v2
appVersion: "1.4"
created: "2024-08-01T10:20:04.510529-04:00"
created: "2024-09-25T17:24:46.205349-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: ab6992a0af9f24d5c090db71679b7f274f3576b1cfbe91325e0d6e9af317657e
name: cbi-oi-kubecost-exporter
Expand All @@ -183,7 +193,7 @@ entries:
version: 1.4.1
- apiVersion: v2
appVersion: "1.4"
created: "2024-08-01T10:20:04.510041-04:00"
created: "2024-09-25T17:24:46.204933-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 870030e989ba274f8b0f9d122a4ada24a4d29ef2c071408bf46d86e18942effd
name: cbi-oi-kubecost-exporter
Expand All @@ -193,7 +203,7 @@ entries:
version: 1.4.0
- apiVersion: v2
appVersion: "1.3"
created: "2024-08-01T10:20:04.509641-04:00"
created: "2024-09-25T17:24:46.204598-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: 0d967927bfab5f4bb6d40ce062710679e98b145c4b3f38709c0bf5d216ad8606
name: cbi-oi-kubecost-exporter
Expand All @@ -203,7 +213,7 @@ entries:
version: 1.3.0
- apiVersion: v2
appVersion: "1.2"
created: "2024-08-01T10:20:04.508586-04:00"
created: "2024-09-25T17:24:46.202448-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: d0c724c7bb085a1801e27f60ff748bc69aba14425cfd27fd132f99966692ed80
name: cbi-oi-kubecost-exporter
Expand All @@ -213,12 +223,12 @@ entries:
version: 1.2.0
- apiVersion: v2
appVersion: "1.1"
created: "2024-08-01T10:20:04.49551-04:00"
created: "2024-09-25T17:24:46.196767-04:00"
description: Kubecost exporter helm chart for Kubernetes
digest: c6f2681575b704b5934efea2357921896d55c4ad5e09692f31ab92b9e614cfea
name: cbi-oi-kubecost-exporter
type: application
urls:
- helm-chart/cbi-oi-kubecost-exporter-1.1.0.tgz
version: 1.1.0
generated: "2024-08-01T10:20:04.493319-04:00"
generated: "2024-09-25T17:24:46.196161-04:00"
11 changes: 11 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,8 @@ func (a *App) uploadToFlexera() {

authHeaders := map[string]string{"Authorization": "Bearer " + accessToken}

atLeastOneError := true

for month, files := range a.filesToUpload {

if len(files) == 0 {
Expand All @@ -325,13 +327,15 @@ func (a *App) uploadToFlexera() {
billUploadID, err := a.StartBillUploadProcess(month, authHeaders)
if err != nil {
log.Println(err)
atLeastOneError = true
continue
}

for fileName := range files {
err = a.UploadFile(billUploadID, fileName, authHeaders)
if err != nil {
log.Printf("Error uploading file: %s. %s\n", fileName, err.Error())
atLeastOneError = true
break
}
}
Expand All @@ -343,8 +347,15 @@ func (a *App) uploadToFlexera() {
}
if err != nil {
log.Println(err)
atLeastOneError = true
}
}

//If at least one error in bill processing exit with code 1
if atLeastOneError {
//the below method internally uses os.Exit(1)
log.Fatal("Error during bill upload. Internal server error")
}
}

func (a *App) StartBillUploadProcess(month string, authHeaders map[string]string) (billUploadID string, err error) {
Expand Down

0 comments on commit 7ba0dd5

Please sign in to comment.