My setup is AWS and EKS.
My work based on:
I created custom helm chart based on OpenCost helm chart(official?) here is my default values.yaml
:
fullnameOverride: opencost awsSpotDataRegion: "" awsSpotDataBucket: "" awsAccountId: "" opencost: serviceAccount: create: true annotations: eks.amazonaws.com/role-arn: "xxx" opencost: exporter: defaultClusterId: "xxx" extraEnv: EMIT_KSM_V1_METRICS: "false" EMIT_KSM_V1_METRICS_ONLY: "true" PROM_CLUSTER_ID_LABEL: cluster LOG_LEVEL: info #error extraVolumeMounts: - name: opencost-conf mountPath: /models/aws.json subPath: aws.json prometheus: external: enabled: true url: "http://mimir-nginx.mimir.svc.cluster.local:80/prometheus" internal: enabled: false ui: enabled: true extraVolumes: - name: opencost-conf configMap: name: opencost-conf items: - key: "aws.json" path: "aws.json"
Also in my custom chart I included configmap.yaml
, here is content of it:
apiVersion: v1 kind: ConfigMap metadata: name: opencost-conf data: aws.json: | { "provider": "custom", "description": "Default prices used to compute allocation between RAM and CPU. AWS pricing API data still used for total node cost.", "CPU": "0.031611", "spotCPU": "0.006655", "RAM": "0.004237", "GPU": "0.95", "spotRAM": "0.000892", "storage": "0.00005479452", "zoneNetworkEgress": "0.01", "regionNetworkEgress": "0.01", "internetNetworkEgress": "0.143", "spotLabel": "", "spotLabelValue": "", "awsServiceKeyName": "", "awsServiceKeySecret": "", "awsSpotDataRegion": "{{ .Values.awsSpotDataRegion }}", "awsSpotDataBucket": "{{ .Values.awsSpotDataBucket }}", "awsSpotDataPrefix": "", "athenaBucketName": "s3://x", "athenaRegion": "us-east-1", "athenaDatabase": "", "athenaTable": "", "projectID": "{{ .Values.awsAccountId }}" }
Top comments (1)
what permission did you give to role?