Helm charts
Manage your Nobl9 agent with Helm chartsβ
Nobl9 provides a collection of Helm charts you can use to manage Nobl9 agents to retrieve SLI metrics from configured data sources and send the data back to Nobl9. The Helm charts are available on GitHub.
What is Helm?β
Helm is the package manager for Kubernetes. With Helm, you can manage even the most complex Kubernetes application. You can find more detailed information in the Helm documentation.
Helm chart configurationβ
To set up the chart, follow these steps:
Install Helm by following the steps described in the Helm documentation and set up a connection to the desired Kubernetes cluster.
Add the Nobl9 repository by entering the following command:
helm repo add nobl9 https://nobl9.github.io/helm-charts
After entering the above-mentioned command, you can discover the available charts, for example:
helm search repo Nobl9
NAME CHART VERSION APP VERSION DESCRIPTION
nobl9/nobl9-agent 1.0.0 0.48.0 Agent to retrieve SLI metrics from configured d...Get the Agent variables from the Nobl9 agent configuration page in the Nobl9 UI.
tipYou can find the Agent variables in the Nobl9 App by navigating to the Integrations > Sources and choosing the data source created using the agent connection method. The variables are presented in the Agent Configuration tab.
Image 1: Nobl9 agent configuration page example noteIf there are no available data sources created using the Agent connection method in the Sources tab, you can create one by following the steps described in the Agent documentation. For more integration-specific details, refer to the Agent Configuration in the UI section in each Integrationβs subpage.
Prepare the chart values.
Review the default configuration and the default values in the
values.yaml
file described in the nobl9-agent | Nobl9 Helm Charts documentation.You can extend this file with custom variables as needed. For example, if you want to add OpenTSDB as a data source, create new
values.yml
file and add the following values:config:
clientId: my-id
clientSecret: my-secret
deployment:
version: "0.51.2"
extraEnvs:
- name: N9_METRICS_PORT
value: "9090"Important notes:
clientId
andclientSecret
values correspond to theN9_CLIENT_ID
andN9_CLIENT_SECRET
variables from the Agent Configuration.Note that the OpenTSDB data source requires an additional
N9_METRICS_PORT
variable. TheN9_OKTA_ORG_URL
andN9_AUTH_SERVER
variables can be omitted because these values are equal to the defaults described in the values.yaml | Nobl9 Helm Charts documentation.
Deploy the chart by entering the following command:
helm install --values values.yml --generate-name nobl9/nobl9-agent
The expected output looks like this:
NAME: nobl9-agent-1663143197
LAST DEPLOYED: Wed Sep 14 10:13:20 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
Helm chart use casesβ
Here are some ways you can customize your Helm chart with:
Use existing Kubernetes secretsβ
If you have an existing Kubernetes secret, for example, one synced with AWS Secrets Manager, you can adjust the chart instead of creating a new one.
As such, instead of providing secrets inline:
config:
clientId: my-id
clientSecret: my-secret
use extraEnvs
variable, for example:
deployment:
extraEnvs:
- name: N9_CLIENT_ID
valueFrom:
secretKeyRef:
key: my-existing-secret-key
name: my-existing-secret
- name: N9_CLIENT_SECRET
valueFrom:
secretKeyRef:
key: my-existing-secret-key
name: my-existing-secret
Override the namespace or secret nameβ
Charts are installed in the default namespace. The secret name corresponds to the chart name. You can change that behavior using overrides, for example:
namespaceOverride: my-custom-namespace
secret:
nameOverride: my-custom-secret-name
Add extra data to a secretβ
Some data sources, Splunk, for example, require additional variables such as tokens or passwords. To securely store them, you should use Kubernetes secrets. In the Helm chart, you can define the variables you want to be included in the secret, for example:
secret:
extraData:
splunk_app_token: my-app-token
deployment:
extraEnvs:
- name: splunk_app_token
valueFrom:
secretKeyRef:
key: splunk_app_token
name: <secret name (defaults to chart name)>
Add extra labels and annotationsβ
You can set custom annotations and labels:
config:
project: my-project
organization: my-org
datasourceName: datadog
deployment:
annotations:
my-custom-annotation: value
extraLabels:
my-extra-label: custom-value
The specified variables will be appended to the existing labels, annotations, and selectors lists, for example:
labels:
helm.sh/chart: nobl9-agent-1.0.0
app.kubernetes.io/name: nobl9-agent
app.kubernetes.io/instance: release-name
nobl9.com/agent-datasource-name: datadog
nobl9.com/agent-project: my-project
nobl9.com/agent-organization: my-org
app.kubernetes.io/version: "0.48.0"
app.kubernetes.io/managed-by: Helm
my-extra-label: custom-value
You can find more combinations in the values.yaml | Nobl9 Helm Charts documentation.