diff --git a/assets/logos/kubecost.png b/assets/logos/kubecost.png new file mode 100644 index 000000000..845f83213 Binary files /dev/null and b/assets/logos/kubecost.png differ diff --git a/packages/kubecost/generated-changes/overlay/app-readme.md b/packages/kubecost/generated-changes/overlay/app-readme.md index dfb1e5854..90fd50607 100644 --- a/packages/kubecost/generated-changes/overlay/app-readme.md +++ b/packages/kubecost/generated-changes/overlay/app-readme.md @@ -1,21 +1,23 @@ # Kubecost + [Kubecost](https://kubecost.com/) is an open-source Kubernetes cost monitoring solution. -Kubecost gives teams visibility into current and historical Kubernetes spend and resource allocation. These models provide cost transparency in Kubernetes environments that support multiple applications, teams, departments, etc. +Kubecost gives teams visibility into current and historical Kubernetes spend and resource allocation. These models provide cost transparency in Kubernetes environments that support multiple applications, teams, departments, etc. To see more on the functionality of the full Kubecost product, please visit the [features page](https://kubecost.com/#features) on our website. Here is a summary of features enabled by this cost model: - Real-time cost allocation by Kubernetes service, deployment, namespace, label, statefulset, daemonset, pod, and container -- Dynamic asset pricing enabled by integrations with AWS, Azure, and GCP billing APIs +- Dynamic asset pricing enabled by integrations with AWS, Azure, and GCP billing APIs - Supports on-prem k8s clusters with custom pricing sheets - Allocation for in-cluster resources like CPU, GPU, memory, and persistent volumes. - Allocation for AWS & GCP out-of-cluster resources like RDS instances and S3 buckets with key (optional) -- Easily export pricing data to Prometheus with /metrics endpoint ([learn more](PROMETHEUS.md)) +- Easily export pricing data to Prometheus with /metrics endpoint ([learn more](https://github.com/kubecost/cost-model/blob/develop/PROMETHEUS.md)) - Free and open source distribution (Apache2 license) ## Requirements + - Kubernetes 1.8+ - kube-state-metrics - Grafana diff --git a/packages/kubecost/generated-changes/overlay/questions.yaml b/packages/kubecost/generated-changes/overlay/questions.yaml new file mode 100644 index 000000000..3569a25e0 --- /dev/null +++ b/packages/kubecost/generated-changes/overlay/questions.yaml @@ -0,0 +1,160 @@ +questions: + # General Settings + - variable: kubecostProductConfigs.clusterName + label: Cluster Name + description: "Used for display in the cost-analyzer UI (Can be renamed in the UI)" + type: string + required: true + default: "" + group: General Settings + - variable: persistentVolume.enabled + label: Enable Persistent Volume for CostAnalyzer + description: "If true, Kubecost will create a Persistent Volume Claim for product config data" + type: boolean + default: false + show_subquestion_if: true + group: "General Settings" + subquestions: + - variable: persistentVolume.size + label: CostAnalyzer Persistent Volume Size + type: string + default: "0.2Gi" + + # Prometheus Server + - variable: global.prometheus.enabled + label: Enable Prometheus + description: If false, use an existing Prometheus install + type: boolean + default: true + group: "Prometheus" + - variable: prometheus.kubeStateMetrics.enabled + label: Enable KubeStateMetrics + description: "If true, deploy kube-state-metrics for Kubernetes metrics" + type: boolean + default: true + show_if: "global.prometheus.enabled=true" + group: "Prometheus" + - variable: prometheus.server.retention + label: Prometheus Server Retention + description: "Determines when to remove old data" + type: string + default: "15d" + show_if: "global.prometheus.enabled=true" + group: "Prometheus" + - variable: prometheus.server.persistentVolume.enabled + label: Create Persistent Volume for Prometheus + description: "If true, prometheus will create a persistent volume claim" + type: boolean + required: true + default: false + group: "Prometheus" + show_if: "global.prometheus.enabled=true" + show_subquestion_if: true + subquestions: + - variable: prometheus.server.persistentVolume.size + label: Prometheus Persistent Volume Size + type: string + default: "8Gi" + - variable: prometheus.server.persistentVolume.storageClass + label: Prometheus Persistent Volume StorageClass + description: "Prometheus data persistent volume storageClass, if not set use default StorageClass" + default: "" + type: storageclass + - variable: prometheus.server.persistentVolume.existingClaim + label: Existing Persistent Volume Claim for Prometheus + description: "If not empty, uses the specified existing PVC instead of creating new one" + type: pvc + default: "" + + # Prometheus Node Exporter + - variable: prometheus.nodeExporter.enabled + label: Enable NodeExporter + description: "If false, do not create NodeExporter daemonset" + type: boolean + default: true + group: "NodeExporter" + - variable: prometheus.serviceAccounts.nodeExporter.create + label: Enable Service Accounts NodeExporter + description: "If false, do not create NodeExporter daemonset" + type: boolean + default: true + group: "NodeExporter" + + # Prometheus AlertManager + - variable: prometheus.alertmanager.enabled + label: Enable AlertManager + type: boolean + default: true + group: "AlertManager" + - variable: prometheus.alertmanager.persistentVolume.enabled + label: Create Persistent Volume for AlertManager + description: "If true, alertmanager will create a persistent volume claim" + type: boolean + required: true + default: false + group: "AlertManager" + show_if: "prometheus.alertmanager.enabled=true" + show_subquestion_if: true + subquestions: + - variable: prometheus.alertmanager.persistentVolume.size + default: "2Gi" + description: "AlertManager data persistent volume size" + type: string + label: AlertManager Persistent Volume Size + - variable: prometheus.alertmanager.persistentVolume.storageClass + default: "" + description: "Alertmanager data persistent volume storageClass, if not set use default StorageClass" + type: storageclass + label: AlertManager Persistent Volume StorageClass + - variable: prometheus.alertmanager.persistentVolume.existingClaim + default: "" + description: "If not empty, uses the specified existing PVC instead of creating new one" + type: pvc + label: Existing Persistent Volume Claim for AlertManager + + # PushGateway + - variable: prometheus.pushgateway.enabled + label: Enable PushGateway + type: boolean + default: true + group: "PushGateway" + - variable: prometheus.pushgateway.persistentVolume.enabled + label: Create Persistent Volume for PushGateway + description: "If true, PushGateway will create a persistent volume claim" + required: true + type: boolean + default: false + group: "PushGateway" + show_if: "prometheus.pushgateway.enabled=true" + show_subquestion_if: true + subquestions: + - variable: prometheus.prometheus.pushgateway.persistentVolume.size + label: PushGateway Persistent Volume Size + type: string + default: "2Gi" + - variable: prometheus.pushgateway.persistentVolume.storageClass + label: PushGateway Persistent Volume StorageClass + description: "PushGateway data persistent volume storageClass, if not set use default StorageClass" + type: storageclass + default: "" + - variable: prometheus.pushgateway.persistentVolume.existingClaim + label: Existing Persistent Volume Claim for PushGateway + description: "If not empty, uses the specified existing PVC instead of creating new one" + type: pvc + default: "" + + # Services and Load Balancing + - variable: ingress.enabled + label: Enable Ingress + description: "Expose app using Ingress (Layer 7 Load Balancer)" + default: true + type: boolean + show_subquestion_if: true + group: "Services and Load Balancing" + subquestions: + - variable: ingress.hosts[0] + default: "xip.io" + description: "Hostname to your CostAnalyzer installation" + type: hostname + required: true + label: Hostname diff --git a/packages/kubecost/generated-changes/overlay/questions.yml b/packages/kubecost/generated-changes/overlay/questions.yml deleted file mode 100644 index ce86c64fb..000000000 --- a/packages/kubecost/generated-changes/overlay/questions.yml +++ /dev/null @@ -1,160 +0,0 @@ -questions: -# General Settings -- variable: kubecostProductConfigs.clusterName - label: Cluster Name - description: "Used for display in the cost-analyzer UI (Can be renamed in the UI)" - type: string - required: true - default: "" - group: General Settings -- variable: persistentVolume.enabled - label: Enable Persistent Volume for CostAnalyzer - description: "If true, Kubecost will create a Persistent Volume Claim for product config data" - type: boolean - default: false - show_subquestion_if: true - group: "General Settings" - subquestions: - - variable: persistentVolume.size - label: CostAnalyzer Persistent Volume Size - type: string - default: "0.2Gi" - -# Prometheus Server -- variable: global.prometheus.enabled - label: Enable Prometheus - description: If false, use an existing Prometheus install - type: boolean - default: true - group: "Prometheus" -- variable: prometheus.kubeStateMetrics.enabled - label: Enable KubeStateMetrics - description: "If true, deploy kube-state-metrics for Kubernetes metrics" - type: boolean - default: true - show_if: "global.prometheus.enabled=true" - group: "Prometheus" -- variable: prometheus.server.retention - label: Prometheus Server Retention - description: "Determines when to remove old data" - type: string - default: "15d" - show_if: "global.prometheus.enabled=true" - group: "Prometheus" -- variable: prometheus.server.persistentVolume.enabled - label: Create Persistent Volume for Prometheus - description: "If true, prometheus will create a persistent volume claim" - type: boolean - required: true - default: false - group: "Prometheus" - show_if: "global.prometheus.enabled=true" - show_subquestion_if: true - subquestions: - - variable: prometheus.server.persistentVolume.size - label: Prometheus Persistent Volume Size - type: string - default: "8Gi" - - variable: prometheus.server.persistentVolume.storageClass - label: Prometheus Persistent Volume StorageClass - description: "Prometheus data persistent volume storageClass, if not set use default StorageClass" - default: "" - type: storageclass - - variable: prometheus.server.persistentVolume.existingClaim - label: Existing Persistent Volume Claim for Prometheus - description: "If not empty, uses the specified existing PVC instead of creating new one" - type: pvc - default: "" - -# Prometheus Node Exporter -- variable: prometheus.nodeExporter.enabled - label: Enable NodeExporter - description: "If false, do not create NodeExporter daemonset" - type: boolean - default: true - group: "NodeExporter" -- variable: prometheus.serviceAccounts.nodeExporter.create - label: Enable Service Accounts NodeExporter - description: "If false, do not create NodeExporter daemonset" - type: boolean - default: true - group: "NodeExporter" - -# Prometheus AlertManager -- variable: prometheus.alertmanager.enabled - label: Enable AlertManager - type: boolean - default: true - group: "AlertManager" -- variable: prometheus.alertmanager.persistentVolume.enabled - label: Create Persistent Volume for AlertManager - description: "If true, alertmanager will create a persistent volume claim" - type: boolean - required: true - default: false - group: "AlertManager" - show_if: "prometheus.alertmanager.enabled=true" - show_subquestion_if: true - subquestions: - - variable: prometheus.alertmanager.persistentVolume.size - default: "2Gi" - description: "AlertManager data persistent volume size" - type: string - label: AlertManager Persistent Volume Size - - variable: prometheus.alertmanager.persistentVolume.storageClass - default: "" - description: "Alertmanager data persistent volume storageClass, if not set use default StorageClass" - type: storageclass - label: AlertManager Persistent Volume StorageClass - - variable: prometheus.alertmanager.persistentVolume.existingClaim - default: "" - description: "If not empty, uses the specified existing PVC instead of creating new one" - type: pvc - label: Existing Persistent Volume Claim for AlertManager - -# PushGateway -- variable: prometheus.pushgateway.enabled - label: Enable PushGateway - type: boolean - default: true - group: "PushGateway" -- variable: prometheus.pushgateway.persistentVolume.enabled - label: Create Persistent Volume for PushGateway - description: "If true, PushGateway will create a persistent volume claim" - required: true - type: boolean - default: false - group: "PushGateway" - show_if: "prometheus.pushgateway.enabled=true" - show_subquestion_if: true - subquestions: - - variable: prometheus.prometheus.pushgateway.persistentVolume.size - label: PushGateway Persistent Volume Size - type: string - default: "2Gi" - - variable: prometheus.pushgateway.persistentVolume.storageClass - label: PushGateway Persistent Volume StorageClass - description: "PushGateway data persistent volume storageClass, if not set use default StorageClass" - type: storageclass - default: "" - - variable: prometheus.pushgateway.persistentVolume.existingClaim - label: Existing Persistent Volume Claim for PushGateway - description: "If not empty, uses the specified existing PVC instead of creating new one" - type: pvc - default: "" - -# Services and Load Balancing -- variable: ingress.enabled - label: Enable Ingress - description: "Expose app using Ingress (Layer 7 Load Balancer)" - default: true - type: boolean - show_subquestion_if: true - group: "Services and Load Balancing" - subquestions: - - variable: ingress.hosts[0] - default: "xip.io" - description: "Hostname to your CostAnalyzer installation" - type: hostname - required: true - label: Hostname diff --git a/packages/kubecost/generated-changes/patch/Chart.yaml.patch b/packages/kubecost/generated-changes/patch/Chart.yaml.patch index ae62a6bf4..09502c669 100644 --- a/packages/kubecost/generated-changes/patch/Chart.yaml.patch +++ b/packages/kubecost/generated-changes/patch/Chart.yaml.patch @@ -1,10 +1,18 @@ --- charts-original/Chart.yaml +++ charts/Chart.yaml -@@ -4,3 +4,7 @@ - cloud costs. - name: cost-analyzer - version: 1.70.0 -+icon: https://kubecost.com/images/logo-white.png -+annotations: +@@ -2,9 +2,14 @@ + artifacthub.io/links: | + - name: Homepage + url: https://www.kubecost.com + catalog.cattle.io/certified: partner ++ catalog.cattle.io/display-name: Kubecost + catalog.cattle.io/release-name: kubecost + apiVersion: v2 + appVersion: 1.83.2 +-description: A Helm chart that sets up Kubecost, Prometheus, and Grafana to monitor ++description: ++ A Helm chart that sets up Kubecost, Prometheus, and Grafana to monitor + cloud costs. ++icon: https://partner-charts.rancher.io/assets/logos/kubecost.png + name: cost-analyzer + version: 1.83.2 diff --git a/packages/kubecost/package.yaml b/packages/kubecost/package.yaml index d620b1097..7ea33c129 100644 --- a/packages/kubecost/package.yaml +++ b/packages/kubecost/package.yaml @@ -1,2 +1,2 @@ -url: https://kubecost.github.io/rancher-helm-chart/cost-analyzer-1.70.0.tgz +url: https://kubecost.github.io/cost-analyzer/cost-analyzer-1.83.2.tgz packageVersion: 01