turbot/kubernetes
steampipe plugin install kubernetes

Table: helm_value - Query Kubernetes Helm Values using SQL

Kubernetes Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters. Helm uses a packaging format called charts, and a chart is a collection of files that describe a related set of Kubernetes resources. Helm Values are the specific configurations for a Helm Chart.

Table Usage Guide

The helm_value table provides insights into Helm Values within Kubernetes. As a DevOps engineer, explore Helm Value-specific details through this table, including the configurations of different Kubernetes applications and services. Utilize it to uncover information about Helm Values, such as those relating to specific Helm Charts, the configurations of different services, and the verification of configurations.

By design, applications can ship with default values.yaml file tuned for production deployments. Also, considering the multiple environments, it may have different configurations. To override the default value, it is not necessary to change the default values.yaml, but you can refer to the override value files from which it takes the configuration. For example:

Let's say you have two different environments for maintaining your app: dev and prod. And, you have a helm chart with 2 different set of values for your environments. For example:

connection "kubernetes" {
plugin = "kubernetes"
helm_rendered_charts = {
"my-app-dev" = {
chart_path = "~/charts/my-app"
values_file_paths = "~/value/file/for/dev.yaml"
}
"my-app-prod" = {
chart_path = "~/charts/my-app"
values_file_paths = "~/value/file/for/prod.yaml"
}
}
}

The table helm_value lists the values from the chart's default values.yaml file, as well as it lists the values from the files that are provided to override the default configuration.

Important Notes

  • You must specify the path column in the where clause to query this table.

Examples

List values configured in the default values.yaml file of a specific chart

Analyze the settings to understand the default configurations set in a specific chart's values.yaml file in Helm, which is beneficial for auditing or modifying these configurations. This allows you to pinpoint the specific locations where changes have been made, enhancing your control over the chart's behavior.

select
path,
key_path,
value,
start_line,
start_column
from
helm_value
where
path = '~/charts/my-app/values.yaml'
order by
start_line;
select
path,
key_path,
value,
start_line,
start_column
from
helm_value
where
path = '~/charts/my-app/values.yaml'
order by
start_line;

List values from a specific override file

Explore which values are being used from a specific file in your Helm configuration. This can be particularly useful to understand and manage your development environment settings.

select
path,
key_path,
value,
start_line,
start_column
from
helm_value
where
path = '~/value/file/for/dev.yaml'
order by
start_line;
select
path,
key_path,
value,
start_line,
start_column
from
helm_value
where
path = '~/value/file/for/dev.yaml'
order by
start_line;

Schema for helm_value

NameTypeOperatorsDescription
_ctxjsonbSteampipe context in JSON form.
foot_commenttextSpecifies the comment following the node and before empty lines.
head_commenttextSpecifies the comment in the lines preceding the node and not separated by an empty line.
key_pathltreeSpecifies full path of a key in YML file.
keysjsonbThe array representation of path of a key.
line_commenttextSpecifies the comment at the end of the line where the node is in.
pathtextName is the path-like name of the template.
pre_commentsjsonbSpecifies the comments added above a key.
sp_connection_nametextSteampipe connection name.
sp_ctxjsonbSteampipe context in JSON form.
start_columnbigintSpecifies the starting column of the value.
start_linebigintSpecifies the line number where the value is located.
valuetextSpecifies the value of the corresponding key.

Export

This table is available as a standalone Exporter CLI. Steampipe exporters are stand-alone binaries that allow you to extract data using Steampipe plugins without a database.

You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_export_installer.sh script:

/bin/sh -c "$(curl -fsSL https://steampipe.io/install/export.sh)" -- kubernetes

You can pass the configuration to the command with the --config argument:

steampipe_export_kubernetes --config '<your_config>' helm_value