Due to Kubernetes ConfigMap
storage limitations, the total size of a pipeline and its associated resources
can’t exceed 1 MiB. This limit includes the combined size of
configuration files, secrets, parsers,
and any other files.
Secret storage
Telemetry Pipeline encrypts all stored secrets using RSA public key cryptography. For every Core Instance you create, Telemetry Pipeline generates a public key and a private key. Chronosphere stores the public key in the Telemetry Pipeline backend, and the private key is stored solely in your local environment. If you add a secret to a Core Instance or any of its pipelines, Chronosphere encrypts that secret with the Core Instance’s public key, then stores the encrypted version in the Telemetry Pipeline backend. When your Core Instance fetches information from the Telemetry Pipeline backend, it uses its private key to decrypt any encrypted secrets. Decrypted secrets are then stored within that Core Instance as Kubernetes Secrets, which take the form of plain text. The following diagrams illustrate the secret generation and usage.Encryption
Decryption
Add a secret
You can add a secret to an individual pipeline or to a Core Instance. Adding a secret to a Core Instance makes that secret available to all pipelines associated with that Core Instance.Pipelines
Use one of the following methods to add a secret to a pipeline.- Web
- Pipeline CLI
- Sign in to Telemetry Pipeline.
- Open the project that contains the pipeline that you want to add a secret to.
- Go to Core Instances, then click the name of the Core Instance associated with the pipeline that you want to add a secret to.
- Under Data Pipelines, click the name of the pipeline that you want to add a secret to.
- Click Advanced Settings.
- In the Add new secret section, enter values for the Name and Value fields.
- Click Add secret to save the secret.
Core Instance
Use one of the following methods to add a secret to a Core Instance.- Web
- Pipeline CLI
- Helm
- Sign in to Telemetry Pipeline.
- Open the project that contains the Core Instance that you want to add a secret to.
- Go to Core Instances, then click the name of the Core Instance that you want to add a secret to.
- Click Advanced Settings.
- In the Add new secret section, enter values the Name and Value fields.
- Click Add secret to save the secret.
Update a secret
You can replace the value of an existing secret with an updated value.Before you update a secret, you won’t be able to see its current value. Similarly,
after you update a secret, you won’t be able to see any of its previous values.
Pipelines
Use one of the following methods to update a secret for a pipeline:- Web
- Pipeline CLI
- Sign in to Telemetry Pipeline.
- Open the project that contains the pipeline whose secret you want to update.
- Go to Core Instances, then click the name of the Core Instance associated with the pipeline whose secret you want to update.
- Under Data Pipelines, click the name of the pipeline whose secret you want to update.
- Click Advanced Settings.
- In the Older Secrets table, find the secret that you want to update, then click Update.
- Enter a new value in the Secret value field, then click Save changes.
Core Instance
Use one of the following methods to update a secret for a Core Instance:- Web
- Helm
- Sign in to Telemetry Pipeline.
- Open the project that contains the Core Instance whose secret you want to update.
- Go to Core Instances, then click the name of the Core Instance whose secret you want to update.
- Click Advanced Settings.
- In the Older Secrets table, find the secret that you want to update, then click Update.
- Enter a new value in the Secret value field, then click Save changes.
Reference a secret
In pipeline configuration files, you can reference both the values of Telemetry Pipeline-amanged secrets and Kubernetes-managed Secrets.Telemetry Pipeline-managed secrets
If you add a secret to a pipeline or to a Core Instance, you can use{{ secrets.key }} syntax to reference the value of that secret in a configuration
file.
For example, given the following secret:
{{ secrets.es-password }}:
http_passwd key has a value of 123456.
Kubernetes-managed Secrets
If you deployed a pipeline in a Kubernetes cluster, you can reference the value of Kubernetes-managed Secrets from that cluster without adding any new secrets to Telemetry Pipeline directly. To reference the value of a Kubernetes Secret inside a pipeline configuration file, use the following syntax:NAME: The name of your Kubernetes Secret.PARAMETER: The name of a key stored within thedatafield of your Kubernetes Secret.
test:
copy
SPECIALSAUCE in a pipeline configuration file
through ${SECRET_TEST_SPECIALSAUCE}:
Name key has a value of ZHVtbXk=.
Back up and restore a private key
To prevent issues with secret storage and decryption, you can back up the private keys stored within each Core Instance, then restore these keys later if needed.Back up a private key
To back up the private key for a Core Instance:-
Run the following kubectl command:
Replace the following values:
INSTANCE: The name of the Core Instance whose key you want to back up.ENV: The environment associated with your Core Instance. If you’re not sure what value to use here, your environment is likelydefault.
-
In the resulting output, look for the text that contains your private key:
Your private key is the value between
BEGIN RSA PRIVATE KEYandEND RSA PRIVATE KEY. - Copy the value of your private key and save it in a trusted, secure location, like a password manager or cloud secret storage service.
Restore a private key
To restore a private key that you previously backed up:-
In kubectl, run the following command to encode your key:
Replace
VALUEwith the value of your private key. -
Run the following command to delete any previously encoded secrets, which might
be inaccurate due to an incorrect or deleted private key:
Replace the following values:
INSTANCE: The name of the Core Instance whose key you want to restore.ENV: The environment associated with your Core Instance. If you’re not sure what value to use here, your environment is likelydefault.NAMESPACE: The namespace where you deployed your Core Instance. If you’re not sure what value to use here, your namespace is likelycalyptia.
-
Run the following command to recreate your secrets using the restored private key:
Replace the following values:
INSTANCE: The name of the Core Instance whose key you want to restore.ENV: The environment associated with your Core Instance. If you’re not sure what value to use here, your environment is likelydefault.